Skip to content

Commit c6b43ba

Browse files
authored
Merge pull request #76 from robyoung/issue-75
Fix Issue #75: Catch TypeError in marshalling
2 parents 24adcbc + 9db12d7 commit c6b43ba

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

flask_restx/fields.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ def format(self, value):
459459
if value is None:
460460
return self.default
461461
return int(value)
462-
except ValueError as ve:
462+
except (ValueError, TypeError) as ve:
463463
raise MarshallingError(ve)
464464

465465

@@ -473,7 +473,7 @@ class Float(NumberMixin, Raw):
473473
def format(self, value):
474474
try:
475475
return float(value)
476-
except ValueError as ve:
476+
except (ValueError, TypeError) as ve:
477477
raise MarshallingError(ve)
478478

479479

tests/test_fields.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -276,10 +276,14 @@ def test_with_default(self):
276276
def test_value(self, value, expected):
277277
self.assert_field(fields.Integer(), value, expected)
278278

279-
def test_decode_error(self):
279+
def test_decode_error_on_invalid_value(self):
280280
field = fields.Integer()
281281
self.assert_field_raises(field, "an int")
282282

283+
def test_decode_error_on_invalid_type(self):
284+
field = fields.Integer()
285+
self.assert_field_raises(field, {"a": "dict"})
286+
283287

284288
class BooleanFieldTest(BaseFieldTestMixin, FieldTestCase):
285289
field_class = fields.Boolean
@@ -330,10 +334,14 @@ def test_value(self, value, expected):
330334
def test_raises(self):
331335
self.assert_field_raises(fields.Float(), "bar")
332336

333-
def test_decode_error(self):
337+
def test_decode_error_on_invalid_value(self):
334338
field = fields.Float()
335339
self.assert_field_raises(field, "not a float")
336340

341+
def test_decode_error_on_invalid_type(self):
342+
field = fields.Float()
343+
self.assert_field_raises(field, {"a": "dict"})
344+
337345

338346
PI_STR = (
339347
"3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117"

0 commit comments

Comments
 (0)