diff --git a/frappe/client.py b/frappe/client.py index e970a64802..a8223cdeee 100644 --- a/frappe/client.py +++ b/frappe/client.py @@ -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")) diff --git a/frappe/tests/test_client.py b/frappe/tests/test_client.py index 1bb2867665..c86c482651 100644 --- a/frappe/tests/test_client.py +++ b/frappe/tests/test_client.py @@ -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()