Merge pull request #16633 from netchampfaris/enh-client-get-filters-json

fix: handle filters passed as dict to client.get
This commit is contained in:
Faris Ansari 2022-04-18 14:44:01 +05:30 committed by GitHub
commit 8b9ae0da23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View file

@ -75,7 +75,7 @@ def get(doctype, name=None, filters=None, parent=None):
check_parent_permission(parent, doctype)
if filters and not name:
name = frappe.db.get_value(doctype, json.loads(filters))
name = frappe.db.get_value(doctype, frappe.parse_json(filters))
if not name:
frappe.throw(_("No document found for given filters"))

View file

@ -129,3 +129,15 @@ class TestClient(unittest.TestCase):
self.assertTrue("name" in first_item)
self.assertTrue("modified" in first_item)
frappe.local.login_manager.logout()
def test_client_get(self):
from frappe.client import get
todo = frappe.get_doc(doctype="ToDo", description="test").insert()
filters = {"name": todo.name}
filters_json = frappe.as_json(filters)
self.assertEqual(get("ToDo", filters=filters).description, "test")
self.assertEqual(get("ToDo", filters=filters_json).description, "test")
todo.delete()