class SensitiveDataSerializer2(serializers.ModelSerializer):
    username = serializers.CharField()
    password = serializers.CharField(write_only=True)

    class Meta:
        model = SensitiveOrderingFilterModel
        fields = ('id', 'username', 'password')
Ejemplo n.º 2
0
 def test_allow_blank(self):
     """
     If `allow_blank=True` then '' is a valid input.
     """
     field = serializers.CharField(allow_blank=True)
     output = field.run_validation('')
     assert output == ''
Ejemplo n.º 3
0
class TestDictField(FieldValues):
    """
    Values for `ListField` with CharField as child.
    """
    valid_inputs = [
        ({
            'a': 1,
            'b': '2',
            3: 3
        }, {
            'a': '1',
            'b': '2',
            '3': '3'
        }),
    ]
    invalid_inputs = [
        ({
            'a': 1,
            'b': None
        }, ['This field may not be null.']),
        ('not a dict', ['Expected a dictionary of items but got type "str".']),
    ]
    outputs = [
        ({
            'a': 1,
            'b': '2',
            3: 3
        }, {
            'a': '1',
            'b': '2',
            '3': '3'
        }),
    ]
    field = serializers.DictField(child=serializers.CharField())
 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)
Ejemplo n.º 5
0
 def test_disallow_blank(self):
     """
     By default '' is not a valid input.
     """
     field = serializers.CharField()
     with pytest.raises(serializers.ValidationError) as exc_info:
         field.run_validation('')
     assert exc_info.value.detail == ['This field may not be blank.']
Ejemplo n.º 6
0
class ValidationSerializer(serializers.Serializer):
    foo = serializers.CharField()

    def validate_foo(self, attrs, source):
        raise serializers.ValidationError("foo invalid")

    def validate(self, attrs):
        raise serializers.ValidationError("serializer invalid")
Ejemplo n.º 7
0
    def __init__(self, *args, **kwargs):
        """
        Dynamically add the USERNAME_FIELD to self.fields.
        """
        super(JSONWebTokenSerializer, self).__init__(*args, **kwargs)

        self.fields[self.username_field] = serializers.CharField()
        self.fields['password'] = PasswordField(write_only=True)
Ejemplo n.º 8
0
class ShouldValidateModelSerializer(serializers.ModelSerializer):
    renamed = serializers.CharField(source='should_validate_field', required=False)

    def validate_renamed(self, value):
        if len(value) < 3:
            raise serializers.ValidationError('Minimum 3 characters.')
        return value

    class Meta:
        model = ShouldValidateModel
        fields = ('renamed',)
class AuthTokenSerializer(serializers.Serializer):
    username = serializers.CharField()
    password = serializers.CharField(style={'input_type': 'password'})

    def validate(self, attrs):
        username = attrs.get('username')
        password = attrs.get('password')

        if username and password:
            user = authenticate(username=username, password=password)

            if user:
                if not user.is_active:
                    msg = _('User account is disabled.')
                    raise exceptions.ValidationError(msg)
            else:
                msg = _('Unable to log in with provided credentials.')
                raise exceptions.ValidationError(msg)
        else:
            msg = _('Must include "username" and "password".')
            raise exceptions.ValidationError(msg)

        attrs['user'] = user
        return attrs
Ejemplo n.º 10
0
class TestCharField(FieldValues):
    """
    Valid and invalid values for `CharField`.
    """
    valid_inputs = {1: '1', 'abc': 'abc'}
    invalid_inputs = {'': ['This field may not be blank.']}
    outputs = {1: '1', 'abc': 'abc'}
    field = serializers.CharField()

    def test_trim_whitespace_default(self):
        field = serializers.CharField()
        assert field.to_internal_value(' abc ') == 'abc'

    def test_trim_whitespace_disabled(self):
        field = serializers.CharField(trim_whitespace=False)
        assert field.to_internal_value(' abc ') == ' abc '
Ejemplo n.º 11
0
class VerificationBaseSerializer(Serializer):
    """
    Abstract serializer used for verifying and refreshing JWTs.
    """
    token = serializers.CharField()

    def validate(self, attrs):
        msg = 'Please define a validate method.'
        raise NotImplementedError(msg)

    def _check_payload(self, token):
        # Check payload valid (based off of JSONWebTokenAuthentication,
        # may want to refactor)
        try:
            payload = jwt_decode_handler(token)
        except jwt.ExpiredSignature:
            msg = _('Signature has expired.')
            raise serializers.ValidationError(msg)
        except jwt.DecodeError:
            msg = _('Error decoding signature.')
            raise serializers.ValidationError(msg)

        return payload

    def _check_user(self, payload):
        username = jwt_get_username_from_payload(payload)

        if not username:
            msg = _('Invalid payload.')
            raise serializers.ValidationError(msg)

        # Make sure user exists
        try:
            user = User.objects.get_by_natural_key(username)
        except User.DoesNotExist:
            msg = _("User doesn't exist.")
            raise serializers.ValidationError(msg)

        if not user.is_active:
            msg = _('User account is disabled.')
            raise serializers.ValidationError(msg)

        return user
Ejemplo n.º 12
0
 class BookSerializer(serializers.Serializer):
     id = serializers.IntegerField()
     title = serializers.CharField(max_length=100)
     author = serializers.CharField(max_length=100)
Ejemplo n.º 13
0
 class ExampleSerializer(serializers.Serializer):
     text = serializers.CharField(max_length=100)
     nested = Nested()
Ejemplo n.º 14
0
 class ExampleSerializer(serializers.Serializer):
     example_field = serializers.CharField(source='other')
 class ExampleSerializer(serializers.Serializer):
     omitted = serializers.CharField(default='abc')
     included = serializers.CharField()
        class ExampleSerializer(serializers.Serializer):
            omitted = serializers.CharField(required=False)
            included = serializers.CharField()

            def create(self, validated_data):
                return MockObject(**validated_data)
 class ExampleSerializer(serializers.Serializer):
     omitted = serializers.CharField(required=False)
     included = serializers.CharField()
 class ExampleSerializer(serializers.Serializer):
     example = serializers.CharField()
 class ExampleSerializer(serializers.Serializer):
     char = serializers.CharField()
     integer = serializers.IntegerField()
Ejemplo n.º 20
0
        class TestSerializer(serializers.ModelSerializer):
            non_model_field = serializers.CharField()

            class Meta:
                model = OneFieldModel
                fields = ('char_field', 'non_model_field')
Ejemplo n.º 21
0
 class ExampleSerializer(serializers.Serializer):
     example_field = serializers.CharField(source='example_callable')
        class ExampleSerializer(serializers.Serializer):
            email = serializers.EmailField()
            password = serializers.CharField(write_only=True)

            def create(self, attrs):
                return attrs
 class ExampleSerializer(serializers.Serializer):
     choice_field = serializers.ChoiceField(['red', 'green', 'blue'])
     integer_field = serializers.IntegerField(max_value=10)
     char_field = serializers.CharField(required=False)
Ejemplo n.º 24
0
 def test_trim_whitespace_default(self):
     field = serializers.CharField()
     assert field.to_internal_value(' abc ') == 'abc'
        class ExampleSerializer(serializers.Serializer):
            char = serializers.CharField()
            integer = serializers.IntegerField()

            def validate(self, attrs):
                raise serializers.ValidationError({'char': 'Field error'})
Ejemplo n.º 26
0
 class ExampleSerializer(serializers.Serializer):
     text = serializers.CharField(max_length=100)
     amount = serializers.IntegerField()
Ejemplo n.º 27
0
class RegexSerializer(serializers.Serializer):
    pin = serializers.CharField(
        validators=[RegexValidator(regex=re.compile('^[0-9]{4,6}$'),
                                   message='A PIN is 4-6 digits')])
Ejemplo n.º 28
0
 class Nested(serializers.Serializer):
     more_text = serializers.CharField(max_length=100)
     amount = serializers.IntegerField()
 class ExampleSerializer(serializers.Serializer):
     field1 = serializers.CharField()
     field2 = serializers.CharField()
Ejemplo n.º 30
0
 def test_trim_whitespace_disabled(self):
     field = serializers.CharField(trim_whitespace=False)
     assert field.to_internal_value(' abc ') == ' abc '