Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7b6702b

Browse files
committed
[#4801] Simplify even more the erros handling in navl
1 parent 8340f55 commit 7b6702b

2 files changed

Lines changed: 6 additions & 20 deletions

File tree

ckan/lib/navl/dictization_functions.py

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -247,22 +247,6 @@ def convert(converter, key, converted_data, errors, context):
247247
return
248248

249249

250-
def _remove_blank_keys(schema):
251-
252-
schema_copy = copy.deepcopy(schema)
253-
254-
for key, value in schema_copy.items():
255-
if len(value) and isinstance(value[0], dict):
256-
for item in value:
257-
if not item:
258-
value.remove(item)
259-
_remove_blank_keys(item)
260-
if not any(value):
261-
schema.pop(key)
262-
263-
return schema
264-
265-
266250
def validate(data, schema, context=None):
267251
'''Validate an unflattened nested dict against a schema.'''
268252
context = context or {}
@@ -289,10 +273,12 @@ def validate(data, schema, context=None):
289273
if key not in converted_data:
290274
converted_data[key] = []
291275

292-
errors_unflattened = unflatten(errors)
293-
294276
# remove validators that passed
295-
_remove_blank_keys(errors_unflattened)
277+
for key in list(errors.keys()):
278+
if not errors[key]:
279+
del errors[key]
280+
281+
errors_unflattened = unflatten(errors)
296282

297283
return converted_data, errors_unflattened
298284

ckan/tests/legacy/lib/test_navl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ def test_simple():
281281
converted_data, errors = validate(data, schema)
282282

283283
print(errors)
284-
assert errors == {'numbers': [{'code': [u'Missing value']}, {}]}
284+
assert errors == {'numbers': [{'code': [u'Missing value']}]}
285285

286286

287287
def test_simple_converter_types():

0 commit comments

Comments
 (0)