aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuri Prezument2012-12-25 18:50:00 +0200
committerYuri Prezument2012-12-25 18:50:00 +0200
commit36e1987f598a5a21a788e931c1ecb13e4c0d0ad8 (patch)
tree61fbb2633ee72be917a42b5e0fd582d1593eaa2e
parented09d26fb8da2391cab4b096d276028384438eb6 (diff)
downloaddjango-rest-framework-36e1987f598a5a21a788e931c1ecb13e4c0d0ad8.tar.bz2
Regression test for #532 - values overriden by "default" setting
-rw-r--r--rest_framework/tests/models.py1
-rw-r--r--rest_framework/tests/serializer.py16
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):