diff options
| author | Stephan Groß | 2012-11-21 11:07:08 +0100 |
|---|---|---|
| committer | Stephan Groß | 2012-11-21 11:07:08 +0100 |
| commit | ed713d0354b67bdc64de9346b9a72e1adfced76e (patch) | |
| tree | 43ab01aee467d5cfafacdc36b9e5bf088c6901b4 | |
| parent | 86484668f689864aa54e127a8107bdee55240cea (diff) | |
| download | django-rest-framework-ed713d0354b67bdc64de9346b9a72e1adfced76e.tar.bz2 | |
added tests
| -rw-r--r-- | rest_framework/tests/models.py | 4 | ||||
| -rw-r--r-- | rest_framework/tests/serializer.py | 28 |
2 files changed, 31 insertions, 1 deletions
diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py index cbdc765c..f6e5333b 100644 --- a/rest_framework/tests/models.py +++ b/rest_framework/tests/models.py @@ -154,3 +154,7 @@ class BlankFieldModel(RESTFrameworkModel): # Model for issue #380 class OptionalRelationModel(RESTFrameworkModel): other = models.ForeignKey('OptionalRelationModel', blank=True, null=True) + +# Model for RegexField +class Book(RESTFrameworkModel): + isbn = models.CharField(max_length=13)
\ No newline at end of file diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index 059593a9..ad100e53 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -2,7 +2,7 @@ import datetime from django.test import TestCase from rest_framework import serializers from rest_framework.tests.models import (ActionItem, Anchor, BasicModel, - BlankFieldModel, BlogPost, CallableDefaultValueModel, DefaultValueModel, + BlankFieldModel, BlogPost, Book, CallableDefaultValueModel, DefaultValueModel, ManyToManyModel, Person, ReadOnlyManyToManyModel) @@ -40,6 +40,13 @@ class CommentSerializer(serializers.Serializer): return instance +class BookSerializer(serializers.ModelSerializer): + isbn = serializers.RegexField(regex=r'^[0-9]{13}$', error_messages={'invalid': 'isbn has to be exact 13 numbers'}) + + class Meta: + model = Book + + class ActionItemSerializer(serializers.ModelSerializer): class Meta: model = ActionItem @@ -240,6 +247,25 @@ class ValidationTests(TestCase): self.assertEquals(serializer.errors, {}) +class RegexValidationTest(TestCase): + def test_create_failed(self): + serializer = BookSerializer(data={'isbn': '1234567890'}) + self.assertFalse(serializer.is_valid()) + self.assertEquals(serializer.errors, {'isbn': [u'isbn has to be exact 13 numbers']}) + + serializer = BookSerializer(data={'isbn': '12345678901234'}) + self.assertFalse(serializer.is_valid()) + self.assertEquals(serializer.errors, {'isbn': [u'isbn has to be exact 13 numbers']}) + + serializer = BookSerializer(data={'isbn': 'abcdefghijklm'}) + self.assertFalse(serializer.is_valid()) + self.assertEquals(serializer.errors, {'isbn': [u'isbn has to be exact 13 numbers']}) + + def test_create_success(self): + serializer = BookSerializer(data={'isbn': '1234567890123'}) + self.assertTrue(serializer.is_valid()) + + class MetadataTests(TestCase): def test_empty(self): serializer = CommentSerializer() |
