fix: also parse JSON-encoded scalar strings in get_safe_filters
This commit is contained in:
parent
46fd36d542
commit
470964015e
2 changed files with 3 additions and 1 deletions
|
|
@ -364,6 +364,8 @@ class TestFilters(IntegrationTestCase):
|
||||||
def test_get_safe_filters_still_parses_json(self):
|
def test_get_safe_filters_still_parses_json(self):
|
||||||
self.assertEqual(get_safe_filters('{"name": "ABC"}'), {"name": "ABC"})
|
self.assertEqual(get_safe_filters('{"name": "ABC"}'), {"name": "ABC"})
|
||||||
self.assertEqual(get_safe_filters('[["name", "=", "ABC"]]'), [["name", "=", "ABC"]])
|
self.assertEqual(get_safe_filters('[["name", "=", "ABC"]]'), [["name", "=", "ABC"]])
|
||||||
|
# FrappeClient encodes scalar filters via frappe.as_json — must still unwrap
|
||||||
|
self.assertEqual(get_safe_filters('"ABC"'), "ABC")
|
||||||
|
|
||||||
def test_get_safe_filters_passes_through_non_strings(self):
|
def test_get_safe_filters_passes_through_non_strings(self):
|
||||||
self.assertEqual(get_safe_filters({"name": "ABC"}), {"name": "ABC"})
|
self.assertEqual(get_safe_filters({"name": "ABC"}), {"name": "ABC"})
|
||||||
|
|
|
||||||
|
|
@ -904,7 +904,7 @@ def call(fn, *args, **kwargs):
|
||||||
|
|
||||||
|
|
||||||
def get_safe_filters(filters):
|
def get_safe_filters(filters):
|
||||||
if isinstance(filters, str) and filters and filters[0] in "{[":
|
if isinstance(filters, str) and filters and filters[0] in '{["':
|
||||||
try:
|
try:
|
||||||
return orjson.loads(filters)
|
return orjson.loads(filters)
|
||||||
except (TypeError, ValueError):
|
except (TypeError, ValueError):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue