diff options
| author | Tom Christie | 2012-12-07 12:34:56 -0800 |
|---|---|---|
| committer | Tom Christie | 2012-12-07 12:34:56 -0800 |
| commit | a5178e9a363d00f3eef8d86da2d0ec687518f288 (patch) | |
| tree | 1a71714f9d14f7c6c8878ffba7e85f416d2f21b1 /rest_framework/tests/serializer.py | |
| parent | a463ddbb37edb725626b5b819266f3962bafc160 (diff) | |
| parent | 919aff329ee1bd214831095e4d96af71795ed572 (diff) | |
| download | django-rest-framework-a5178e9a363d00f3eef8d86da2d0ec687518f288.tar.bz2 | |
Merge pull request #451 from markotibold/#431
Call model's .full_clean() method, eg. to validate uniqueness
Diffstat (limited to 'rest_framework/tests/serializer.py')
| -rw-r--r-- | rest_framework/tests/serializer.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index 6aa211f4..455fa270 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -1,7 +1,7 @@ import datetime, pickle from django.test import TestCase from rest_framework import serializers -from rest_framework.tests.models import (ActionItem, Anchor, BasicModel, +from rest_framework.tests.models import (Album, ActionItem, Anchor, BasicModel, BlankFieldModel, BlogPost, Book, CallableDefaultValueModel, DefaultValueModel, ManyToManyModel, Person, ReadOnlyManyToManyModel) @@ -48,7 +48,7 @@ class BookSerializer(serializers.ModelSerializer): class ActionItemSerializer(serializers.ModelSerializer): - + class Meta: model = ActionItem @@ -62,6 +62,12 @@ class PersonSerializer(serializers.ModelSerializer): read_only_fields = ('age',) +class AlbumsSerializer(serializers.ModelSerializer): + + class Meta: + model = Album + + class BasicTests(TestCase): def setUp(self): self.comment = Comment( @@ -169,7 +175,7 @@ class ValidationTests(TestCase): 'content': 'x' * 1001, 'created': datetime.datetime(2012, 1, 1) } - self.actionitem = ActionItem('Some to do item', + self.actionitem = ActionItem(title='Some to do item', ) def test_create(self): @@ -276,6 +282,17 @@ class ValidationTests(TestCase): self.assertEquals(serializer.is_valid(), False) self.assertEquals(serializer.errors, {'info': [u'Ensure this value has at most 12 characters (it has 13).']}) + def test_validate_unique(self): + """ + Just check if serializers.ModelSerializer.perform_model_validation() handles unique checks via .full_clean() + """ + serializer = AlbumsSerializer(data={'title': 'a'}) + serializer.is_valid() + serializer.save() + second_serializer = AlbumsSerializer(data={'title': 'a'}) + self.assertFalse(second_serializer.is_valid()) + self.assertEqual(second_serializer.errors, {'title': [u'Album with this Title already exists.']}) + class RegexValidationTest(TestCase): def test_create_failed(self): |
