Add more validation when parsing task call

This commit is contained in:
allegroai 2020-02-04 18:19:07 +02:00
parent 72be8bee19
commit b7b94e7ae5

View File

@ -96,7 +96,12 @@ def parse_from_call(call_data, fields, cls_fields, discard_none_values=True):
continue
if desc:
if callable(desc):
desc(value)
try:
desc(value)
except TypeError:
raise ParseCallError(f"expecting {desc.__name__}", field=field)
except Exception as ex:
raise ParseCallError(str(ex), field=field)
else:
if issubclass(desc, (list, tuple, dict)) and not isinstance(
value, desc