diff options
| author | Tom Christie | 2014-09-29 09:24:03 +0100 | 
|---|---|---|
| committer | Tom Christie | 2014-09-29 09:24:03 +0100 | 
| commit | 43fd5a873051c99600386c1fdc9fa368edeb6eda (patch) | |
| tree | 6242d6480b7780c8a9ab2e5c46f1a8b9d0e25676 /tests/test_validators.py | |
| parent | ce04d59a53df45715c4805831406b2105c9594a8 (diff) | |
| download | django-rest-framework-43fd5a873051c99600386c1fdc9fa368edeb6eda.tar.bz2 | |
Uniqueness validation
Diffstat (limited to 'tests/test_validators.py')
| -rw-r--r-- | tests/test_validators.py | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/tests/test_validators.py b/tests/test_validators.py new file mode 100644 index 00000000..a1366a1a --- /dev/null +++ b/tests/test_validators.py @@ -0,0 +1,35 @@ +from django.db import models +from django.test import TestCase +from rest_framework import serializers + + +class ExampleModel(models.Model): +    username = models.CharField(unique=True, max_length=100) + + +class ExampleSerializer(serializers.ModelSerializer): +    class Meta: +        model = ExampleModel + + +class TestUniquenessValidation(TestCase): +    def setUp(self): +        self.instance = ExampleModel.objects.create(username='existing') + +    def test_is_not_unique(self): +        data = {'username': 'existing'} +        serializer = ExampleSerializer(data=data) +        assert not serializer.is_valid() +        assert serializer.errors == {'username': ['This field must be unique.']} + +    def test_is_unique(self): +        data = {'username': 'other'} +        serializer = ExampleSerializer(data=data) +        assert serializer.is_valid() +        assert serializer.validated_data == {'username': 'other'} + +    def test_updated_instance_excluded(self): +        data = {'username': 'existing'} +        serializer = ExampleSerializer(self.instance, data=data) +        assert serializer.is_valid() +        assert serializer.validated_data == {'username': 'existing'} | 
