aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/serializer.py
diff options
context:
space:
mode:
authorTom Christie2012-10-03 13:28:22 -0700
committerTom Christie2012-10-03 13:28:22 -0700
commit0a769f261e79272cf1be6add1bf96aaeec59fb05 (patch)
treedd7f32d5ce01e88a2e435c406bbd120799340799 /rest_framework/tests/serializer.py
parent89ec0b275039868668080be740c46ebef92cff1e (diff)
parenta02707e12f750fd0d325e528f7b0fbcd7079db73 (diff)
downloaddjango-rest-framework-0a769f261e79272cf1be6add1bf96aaeec59fb05.tar.bz2
Merge pull request #277 from tomchristie/related-field-fixes
Related field fixes
Diffstat (limited to 'rest_framework/tests/serializer.py')
-rw-r--r--rest_framework/tests/serializer.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index f7412a32..db342c9e 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -160,6 +160,48 @@ class ManyToManyTests(TestCase):
self.assertEquals(instance.pk, 1)
self.assertEquals(list(instance.rel.all()), [self.anchor, new_anchor])
+ def test_create_empty_relationship(self):
+ """
+ Create an instance of a model with a ManyToMany relationship,
+ containing no items.
+ """
+ data = {'rel': []}
+ serializer = self.serializer_class(data)
+ self.assertEquals(serializer.is_valid(), True)
+ instance = serializer.save()
+ self.assertEquals(len(ManyToManyModel.objects.all()), 2)
+ self.assertEquals(instance.pk, 2)
+ self.assertEquals(list(instance.rel.all()), [])
+
+ def test_update_empty_relationship(self):
+ """
+ Update an instance of a model with a ManyToMany relationship,
+ containing no items.
+ """
+ new_anchor = Anchor()
+ new_anchor.save()
+ data = {'rel': []}
+ serializer = self.serializer_class(data, instance=self.instance)
+ self.assertEquals(serializer.is_valid(), True)
+ instance = serializer.save()
+ self.assertEquals(len(ManyToManyModel.objects.all()), 1)
+ self.assertEquals(instance.pk, 1)
+ self.assertEquals(list(instance.rel.all()), [])
+
+ def test_create_empty_relationship_flat_data(self):
+ """
+ Create an instance of a model with a ManyToMany relationship,
+ containing no items, using a representation that does not support
+ lists (eg form data).
+ """
+ data = {'rel': ''}
+ serializer = self.serializer_class(data)
+ self.assertEquals(serializer.is_valid(), True)
+ instance = serializer.save()
+ self.assertEquals(len(ManyToManyModel.objects.all()), 2)
+ self.assertEquals(instance.pk, 2)
+ self.assertEquals(list(instance.rel.all()), [])
+
# def test_deserialization_for_update(self):
# serializer = self.serializer_class(self.data, instance=self.instance)
# expected = self.instance