コード例 #1
0
class SensitiveDataSerializer2(serializers.ModelSerializer):
    username = serializers.CharField()
    password = serializers.CharField(write_only=True)

    class Meta:
        model = SensitiveOrderingFilterModel
        fields = ('id', 'username', 'password')
コード例 #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 == ''
コード例 #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())
コード例 #4
0
 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)
コード例 #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.']
コード例 #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")
コード例 #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)
コード例 #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',)
コード例 #9
0
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
コード例 #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 '
コード例 #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
コード例 #12
0
 class BookSerializer(serializers.Serializer):
     id = serializers.IntegerField()
     title = serializers.CharField(max_length=100)
     author = serializers.CharField(max_length=100)
コード例 #13
0
 class ExampleSerializer(serializers.Serializer):
     text = serializers.CharField(max_length=100)
     nested = Nested()
コード例 #14
0
 class ExampleSerializer(serializers.Serializer):
     example_field = serializers.CharField(source='other')
コード例 #15
0
 class ExampleSerializer(serializers.Serializer):
     omitted = serializers.CharField(default='abc')
     included = serializers.CharField()
コード例 #16
0
        class ExampleSerializer(serializers.Serializer):
            omitted = serializers.CharField(required=False)
            included = serializers.CharField()

            def create(self, validated_data):
                return MockObject(**validated_data)
コード例 #17
0
 class ExampleSerializer(serializers.Serializer):
     omitted = serializers.CharField(required=False)
     included = serializers.CharField()
コード例 #18
0
 class ExampleSerializer(serializers.Serializer):
     example = serializers.CharField()
コード例 #19
0
 class ExampleSerializer(serializers.Serializer):
     char = serializers.CharField()
     integer = serializers.IntegerField()
コード例 #20
0
        class TestSerializer(serializers.ModelSerializer):
            non_model_field = serializers.CharField()

            class Meta:
                model = OneFieldModel
                fields = ('char_field', 'non_model_field')
コード例 #21
0
 class ExampleSerializer(serializers.Serializer):
     example_field = serializers.CharField(source='example_callable')
コード例 #22
0
        class ExampleSerializer(serializers.Serializer):
            email = serializers.EmailField()
            password = serializers.CharField(write_only=True)

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

            def validate(self, attrs):
                raise serializers.ValidationError({'char': 'Field error'})
コード例 #26
0
 class ExampleSerializer(serializers.Serializer):
     text = serializers.CharField(max_length=100)
     amount = serializers.IntegerField()
コード例 #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')])
コード例 #28
0
 class Nested(serializers.Serializer):
     more_text = serializers.CharField(max_length=100)
     amount = serializers.IntegerField()
コード例 #29
0
 class ExampleSerializer(serializers.Serializer):
     field1 = serializers.CharField()
     field2 = serializers.CharField()
コード例 #30
0
 def test_trim_whitespace_disabled(self):
     field = serializers.CharField(trim_whitespace=False)
     assert field.to_internal_value(' abc ') == ' abc '