diff options
| author | Mark Aaron Shirley | 2013-04-16 09:55:47 -0700 |
|---|---|---|
| committer | Mark Aaron Shirley | 2013-04-16 09:55:47 -0700 |
| commit | c7e000e46e831a254689faac44ea44ebafe3cd61 (patch) | |
| tree | f3b3ed8c258b82b3dfb1939404f00f5fb16b7c1c /rest_framework/tests/serializer_bulk_update.py | |
| parent | bda25479aa7e73c90bc77b7c7219eaa411af138e (diff) | |
| parent | 23289b023db230f73e4a5bfae24a56c79e3fcd4b (diff) | |
| download | django-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.py | 28 |
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. |
