aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests
diff options
context:
space:
mode:
authorRob Dobson2012-10-17 19:12:34 +0100
committerRob Dobson2012-10-17 19:12:34 +0100
commit38673c35d4aa5487e175ac7c917c66c45ddb6ba4 (patch)
tree098c90eecf8c725db7883bfa06ea7e1c4cda7c7a /rest_framework/tests
parentcab4a2a5ad17545ac435785bf55b0b3a6c8f932c (diff)
downloaddjango-rest-framework-38673c35d4aa5487e175ac7c917c66c45ddb6ba4.tar.bz2
Make default field check safe for boolean values whereby 'False' may be an acceptable default value
Diffstat (limited to 'rest_framework/tests')
-rw-r--r--rest_framework/tests/models.py4
-rw-r--r--rest_framework/tests/serializer.py19
2 files changed, 22 insertions, 1 deletions
diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py
index 6a758f0c..75dab2f7 100644
--- a/rest_framework/tests/models.py
+++ b/rest_framework/tests/models.py
@@ -91,3 +91,7 @@ class Comment(RESTFrameworkModel):
email = models.EmailField()
content = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
+
+class ActionItem(RESTFrameworkModel):
+ title = models.CharField(max_length=200)
+ done = models.BooleanField(default=False)
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index 256987ad..610ed85f 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -28,6 +28,10 @@ class CommentSerializer(serializers.Serializer):
return instance
+class ActionItemSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = ActionItem
+
class BasicTests(TestCase):
def setUp(self):
self.comment = Comment(
@@ -81,7 +85,9 @@ class ValidationTests(TestCase):
'email': 'tom@example.com',
'content': 'x' * 1001,
'created': datetime.datetime(2012, 1, 1)
- }
+ }
+ self.actionitem = ActionItem('Some to do item',
+ )
def test_create(self):
serializer = CommentSerializer(self.data)
@@ -102,6 +108,17 @@ class ValidationTests(TestCase):
self.assertEquals(serializer.is_valid(), False)
self.assertEquals(serializer.errors, {'email': [u'This field is required.']})
+ def test_missing_bool_with_default(self):
+ """Make sure that a boolean value with a 'False' value is not
+ mistaken for not having a default."""
+ data = {
+ 'title':'Some action item',
+ #No 'done' value.
+ }
+ serializer = ActionItemSerializer(data, instance=self.actionitem)
+ self.assertEquals(serializer.is_valid(), True)
+ self.assertEquals(serializer.errors, {})
+
class MetadataTests(TestCase):
def test_empty(self):