diff options
| author | Tom Christie | 2012-10-03 13:28:22 -0700 |
|---|---|---|
| committer | Tom Christie | 2012-10-03 13:28:22 -0700 |
| commit | 0a769f261e79272cf1be6add1bf96aaeec59fb05 (patch) | |
| tree | dd7f32d5ce01e88a2e435c406bbd120799340799 /rest_framework/tests/serializer.py | |
| parent | 89ec0b275039868668080be740c46ebef92cff1e (diff) | |
| parent | a02707e12f750fd0d325e528f7b0fbcd7079db73 (diff) | |
| download | django-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.py | 42 |
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 |
