Browse Source

Merge pull request #16361 from alyf-de/fix-exists-pop

fix: copy dict before popping keys
version-14
mergify[bot] 3 years ago
committed by GitHub
parent
commit
a4f0344aaf
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions
  1. +2
    -2
      frappe/database/database.py
  2. +7
    -1
      frappe/tests/test_db.py

+ 2
- 2
frappe/database/database.py View File

@@ -919,8 +919,8 @@ class Database(object):
return dn return dn


if isinstance(dt, dict): if isinstance(dt, dict):
_dt = dt.pop("doctype")
dt, dn = _dt, dt
dt = dt.copy() # don't modify the original dict
dt, dn = dt.pop("doctype"), dt


return self.get_value(dt, dn, ignore=True, cache=cache) return self.get_value(dt, dn, ignore=True, cache=cache)




+ 7
- 1
frappe/tests/test_db.py View File

@@ -327,7 +327,13 @@ class TestDB(unittest.TestCase):
self.assertEqual(frappe.db.exists(dt, dn, cache=True), dn) self.assertEqual(frappe.db.exists(dt, dn, cache=True), dn)
self.assertEqual(frappe.db.exists(dt, dn), dn) self.assertEqual(frappe.db.exists(dt, dn), dn)
self.assertEqual(frappe.db.exists(dt, {"name": ("=", dn)}), dn) self.assertEqual(frappe.db.exists(dt, {"name": ("=", dn)}), dn)
self.assertEqual(frappe.db.exists({"doctype": dt, "name": ("like", "Admin%")}), dn)

filters = {"doctype": dt, "name": ("like", "Admin%")}
self.assertEqual(frappe.db.exists(filters), dn)
self.assertEqual(
filters["doctype"], dt
) # make sure that doctype was not removed from filters

self.assertEqual(frappe.db.exists(dt, [["name", "=", dn]]), dn) self.assertEqual(frappe.db.exists(dt, [["name", "=", dn]]), dn)






Loading…
Cancel
Save