浏览代码

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

fix: copy dict before popping keys
version-14
mergify[bot] 3 年前
committed by GitHub
父节点
当前提交
a4f0344aaf
找不到此签名对应的密钥 GPG 密钥 ID: 4AEE18F83AFDEB23
共有 2 个文件被更改,包括 9 次插入3 次删除
  1. +2
    -2
      frappe/database/database.py
  2. +7
    -1
      frappe/tests/test_db.py

+ 2
- 2
frappe/database/database.py 查看文件

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

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)



+ 7
- 1
frappe/tests/test_db.py 查看文件

@@ -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), 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)




正在加载...
取消
保存