diff options
| author | Yuri Prezument | 2012-12-25 18:50:00 +0200 |
|---|---|---|
| committer | Yuri Prezument | 2012-12-25 18:50:00 +0200 |
| commit | 36e1987f598a5a21a788e931c1ecb13e4c0d0ad8 (patch) | |
| tree | 61fbb2633ee72be917a42b5e0fd582d1593eaa2e | |
| parent | ed09d26fb8da2391cab4b096d276028384438eb6 (diff) | |
| download | django-rest-framework-36e1987f598a5a21a788e931c1ecb13e4c0d0ad8.tar.bz2 | |
Regression test for #532 - values overriden by "default" setting
| -rw-r--r-- | rest_framework/tests/models.py | 1 | ||||
| -rw-r--r-- | rest_framework/tests/serializer.py | 16 |
2 files changed, 16 insertions, 1 deletions
diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py index 0759650a..ae8e42b8 100644 --- a/rest_framework/tests/models.py +++ b/rest_framework/tests/models.py @@ -71,6 +71,7 @@ class SlugBasedModel(RESTFrameworkModel): class DefaultValueModel(RESTFrameworkModel): text = models.CharField(default='foobar', max_length=100) + extra = models.CharField(blank=True, null=True, max_length=100) class CallableDefaultValueModel(RESTFrameworkModel): diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index f780e811..aac1f68a 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -340,7 +340,6 @@ class ModelValidationTests(TestCase): self.assertTrue(photo_serializer.save()) - class RegexValidationTest(TestCase): def test_create_failed(self): serializer = BookSerializer(data={'isbn': '1234567890'}) @@ -551,6 +550,21 @@ class DefaultValueTests(TestCase): self.assertEquals(instance.pk, 1) self.assertEquals(instance.text, 'overridden') + def test_partial_update_default(self): + """ Regression test for issue #532 """ + data = {'text': 'overridden'} + serializer = self.serializer_class(data=data, partial=True) + self.assertEquals(serializer.is_valid(), True) + instance = serializer.save() + + data = {'extra': 'extra_value'} + serializer = self.serializer_class(instance=instance, data=data, partial=True) + self.assertEquals(serializer.is_valid(), True) + instance = serializer.save() + + self.assertEquals(instance.extra, 'extra_value') + self.assertEquals(instance.text, 'overridden') + class CallableDefaultValueTests(TestCase): def setUp(self): |
