aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/serializer_bulk_update.py
diff options
context:
space:
mode:
authorMark Aaron Shirley2013-04-16 09:55:47 -0700
committerMark Aaron Shirley2013-04-16 09:55:47 -0700
commitc7e000e46e831a254689faac44ea44ebafe3cd61 (patch)
treef3b3ed8c258b82b3dfb1939404f00f5fb16b7c1c /rest_framework/tests/serializer_bulk_update.py
parentbda25479aa7e73c90bc77b7c7219eaa411af138e (diff)
parent23289b023db230f73e4a5bfae24a56c79e3fcd4b (diff)
downloaddjango-rest-framework-c7e000e46e831a254689faac44ea44ebafe3cd61.tar.bz2
Merge remote-tracking branch 'upstream/master' into writable-nested-modelserializer
Conflicts: docs/api-guide/serializers.md
Diffstat (limited to 'rest_framework/tests/serializer_bulk_update.py')
-rw-r--r--rest_framework/tests/serializer_bulk_update.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/rest_framework/tests/serializer_bulk_update.py b/rest_framework/tests/serializer_bulk_update.py
index 5328e733..8b0ded1a 100644
--- a/rest_framework/tests/serializer_bulk_update.py
+++ b/rest_framework/tests/serializer_bulk_update.py
@@ -98,7 +98,7 @@ class BulkCreateSerializerTests(TestCase):
serializer = self.BookSerializer(data=data, many=True)
self.assertEqual(serializer.is_valid(), False)
- expected_errors = {'non_field_errors': ['Expected a list of items']}
+ expected_errors = {'non_field_errors': ['Expected a list of items.']}
self.assertEqual(serializer.errors, expected_errors)
@@ -115,7 +115,7 @@ class BulkCreateSerializerTests(TestCase):
serializer = self.BookSerializer(data=data, many=True)
self.assertEqual(serializer.is_valid(), False)
- expected_errors = {'non_field_errors': ['Expected a list of items']}
+ expected_errors = {'non_field_errors': ['Expected a list of items.']}
self.assertEqual(serializer.errors, expected_errors)
@@ -206,6 +206,7 @@ class BulkUpdateSerializerTests(TestCase):
self.assertEqual(serializer.data, data)
serializer.save()
new_data = self.BookSerializer(self.books(), many=True).data
+
self.assertEqual(data, new_data)
def test_bulk_update_and_create(self):
@@ -230,6 +231,29 @@ class BulkUpdateSerializerTests(TestCase):
new_data = self.BookSerializer(self.books(), many=True).data
self.assertEqual(data, new_data)
+ def test_bulk_update_invalid_create(self):
+ """
+ Bulk update serialization without allow_add_remove may not create items.
+ """
+ data = [
+ {
+ 'id': 0,
+ 'title': 'The electric kool-aid acid test',
+ 'author': 'Tom Wolfe'
+ }, {
+ 'id': 3,
+ 'title': 'Kafka on the shore',
+ 'author': 'Haruki Murakami'
+ }
+ ]
+ expected_errors = [
+ {},
+ {'non_field_errors': ['Cannot create a new item, only existing items may be updated.']}
+ ]
+ serializer = self.BookSerializer(self.books(), data=data, many=True)
+ self.assertEqual(serializer.is_valid(), False)
+ self.assertEqual(serializer.errors, expected_errors)
+
def test_bulk_update_error(self):
"""
Incorrect bulk update serialization should return error data.