Add tests to ensure ListField does not except dictionary as input.

This commit is contained in:
Dawn Pattison 2015-11-13 10:17:09 -05:00
parent 8fa7c5c914
commit 5fdc4f22cf

View File

@ -1437,7 +1437,8 @@ class TestListField(FieldValues):
] ]
invalid_inputs = [ invalid_inputs = [
('not a list', ['Expected a list of items but got type "str".']), ('not a list', ['Expected a list of items but got type "str".']),
([1, 2, 'error'], ['A valid integer is required.']) ([1, 2, 'error'], ['A valid integer is required.']),
({'one': 'two'}, ['Expected a list of items but got type "dict".'])
] ]
outputs = [ outputs = [
([1, 2, 3], [1, 2, 3]), ([1, 2, 3], [1, 2, 3]),
@ -1454,6 +1455,14 @@ class TestListField(FieldValues):
"Remove `source=` from the field declaration." "Remove `source=` from the field declaration."
) )
def test_collection_types_are_invalid_input(self):
field = serializers.ListField(child=serializers.CharField())
input_value = ({'one': 'two'})
with pytest.raises(serializers.ValidationError) as exc_info:
field.to_internal_value(input_value)
assert exc_info.value.detail == [u'Expected a list of items but got type "dict".']
class TestEmptyListField(FieldValues): class TestEmptyListField(FieldValues):
""" """