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'} |
