def test_default(self): """ If `default` is set, then omitted values get the default input. """ field = serializers.IntegerField(default=123) output = field.run_validation() assert output is 123
def test_not_required(self): """ If `required=False` then a field may be omitted from the input. """ field = serializers.IntegerField(required=False) with pytest.raises(serializers.SkipField): field.run_validation()
class TestSerializer(serializers.Serializer): integers = serializers.ListSerializer( child=serializers.ListSerializer( child=serializers.IntegerField())) booleans = serializers.ListSerializer( child=serializers.ListSerializer( child=serializers.BooleanField()))
def test_allow_null(self): """ If `allow_null=True` then `None` is a valid input. """ field = serializers.IntegerField(allow_null=True) output = field.run_validation(None) assert output is None
class ExampleSerializer(serializers.Serializer): choice_field = serializers.ChoiceField(['red', 'green', 'blue']) integer_field = serializers.IntegerField(min_value=1, max_value=1000) char_field = serializers.CharField(required=False, min_length=3, max_length=40)
def test_disallow_null(self): """ By default `None` is not a valid input. """ field = serializers.IntegerField() with pytest.raises(serializers.ValidationError) as exc_info: field.run_validation(None) assert exc_info.value.detail == ['This field may not be null.']
class TestSerializer(serializers.Serializer): integers = serializers.ListSerializer( child=serializers.IntegerField()) booleans = serializers.ListSerializer( child=serializers.BooleanField()) def create(self, validated_data): return BasicObject(**validated_data)
def test_required(self): """ By default a field must be included in the input. """ field = serializers.IntegerField() with pytest.raises(serializers.ValidationError) as exc_info: field.run_validation() assert exc_info.value.detail == ['This field is required.']
class TestListField(FieldValues): """ Values for `ListField` with IntegerField as child. """ valid_inputs = [([1, 2, 3], [1, 2, 3]), (['1', '2', '3'], [1, 2, 3])] invalid_inputs = [('not a list', ['Expected a list of items but got type "str".']), ([1, 2, 'error'], ['A valid integer is required.'])] outputs = [([1, 2, 3], [1, 2, 3]), (['1', '2', '3'], [1, 2, 3])] field = serializers.ListField(child=serializers.IntegerField())
class TestIntegerField(FieldValues): """ Valid and invalid values for `IntegerField`. """ valid_inputs = {'1': 1, '0': 0, 1: 1, 0: 0, 1.0: 1, 0.0: 0, '1.0': 1} invalid_inputs = { 0.5: ['A valid integer is required.'], 'abc': ['A valid integer is required.'], '0.5': ['A valid integer is required.'] } outputs = {'1': 1, '0': 0, 1: 1, 0: 0, 1.0: 1, 0.0: 0} field = serializers.IntegerField()
class TestMinMaxIntegerField(FieldValues): """ Valid and invalid values for `IntegerField` with min and max limits. """ valid_inputs = { '1': 1, '3': 3, 1: 1, 3: 3, } invalid_inputs = { 0: ['Ensure this value is greater than or equal to 1.'], 4: ['Ensure this value is less than or equal to 3.'], '0': ['Ensure this value is greater than or equal to 1.'], '4': ['Ensure this value is less than or equal to 3.'], } outputs = {} field = serializers.IntegerField(min_value=1, max_value=3)
class IntegerListSerializer(serializers.ListSerializer): child = serializers.IntegerField()
class TestSerializer(serializers.Serializer): write_only = serializers.IntegerField(write_only=True) readable = serializers.IntegerField()
class TestSerializer(serializers.Serializer): initial_field = serializers.IntegerField(initial=123) blank_field = serializers.IntegerField()
class BookSerializer(serializers.Serializer): id = serializers.IntegerField() title = serializers.CharField(max_length=100) author = serializers.CharField(max_length=100)
class Nested(serializers.Serializer): more_text = serializers.CharField(max_length=100) amount = serializers.IntegerField()
class ExampleSerializer(serializers.Serializer): text = serializers.CharField(max_length=100) amount = serializers.IntegerField()
class ExampleSerializer(serializers.Serializer): char = serializers.CharField() integer = serializers.IntegerField() def validate(self, attrs): raise serializers.ValidationError({'char': 'Field error'})
class ExampleSerializer(serializers.Serializer): incorrect_name = serializers.IntegerField()
class NestedSerializer2(serializers.Serializer): c = serializers.IntegerField() d = serializers.IntegerField()
class TestSerializer(serializers.Serializer): read_only = serializers.ReadOnlyField() writable = serializers.IntegerField()
class ExampleSerializer(serializers.Serializer): char = serializers.CharField() integer = serializers.IntegerField()
class TestSerializer(serializers.Serializer): labeled = serializers.IntegerField(label='My label')
class ExampleSerializer(serializers.Serializer): choice_field = serializers.ChoiceField(['red', 'green', 'blue']) integer_field = serializers.IntegerField(max_value=10) char_field = serializers.CharField(required=False)
class NestedSerializer1(serializers.Serializer): a = serializers.IntegerField() b = serializers.IntegerField()
class NestedSerializer(serializers.Serializer): one = serializers.IntegerField(max_value=10) two = serializers.IntegerField(max_value=10)