aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_model_serializer.py
diff options
context:
space:
mode:
authorTom Christie2014-09-19 16:43:13 +0100
committerTom Christie2014-09-19 16:43:13 +0100
commitcf72b9a8b755652cec4ad19a27488e3a79c2e401 (patch)
treec9720850a9b670d62028c8451e1cbbd69b3fc6bb /tests/test_model_serializer.py
parentb361c54c5c198583e5085cf49ef44291ec09d2e8 (diff)
downloaddjango-rest-framework-cf72b9a8b755652cec4ad19a27488e3a79c2e401.tar.bz2
Moar tests
Diffstat (limited to 'tests/test_model_serializer.py')
-rw-r--r--tests/test_model_serializer.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py
index d518dd58..d9f9efbe 100644
--- a/tests/test_model_serializer.py
+++ b/tests/test_model_serializer.py
@@ -473,3 +473,36 @@ class TestIntegration(TestCase):
'through': []
}
self.assertEqual(serializer.data, expected)
+
+
+# Tests for bulk create using `ListSerializer`.
+
+class BulkCreateModel(models.Model):
+ name = models.CharField(max_length=10)
+
+
+class TestBulkCreate(TestCase):
+ def test_bulk_create(self):
+ class BasicModelSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = BulkCreateModel
+ fields = ('name',)
+
+ class BulkCreateSerializer(serializers.ListSerializer):
+ child = BasicModelSerializer()
+
+ data = [{'name': 'a'}, {'name': 'b'}, {'name': 'c'}]
+ serializer = BulkCreateSerializer(data=data)
+ assert serializer.is_valid()
+
+ # Objects are returned by save().
+ instances = serializer.save()
+ assert len(instances) == 3
+ assert [item.name for item in instances] == ['a', 'b', 'c']
+
+ # Objects have been created in the database.
+ assert BulkCreateModel.objects.count() == 3
+ assert list(BulkCreateModel.objects.values_list('name', flat=True)) == ['a', 'b', 'c']
+
+ # Serializer returns correct data.
+ assert serializer.data == data