diff options
| author | Tom Christie | 2012-10-03 11:50:08 +0100 | 
|---|---|---|
| committer | Tom Christie | 2012-10-03 11:50:08 +0100 | 
| commit | f1f7f5d4e3cd67730c6fb2233a5e4d6afaeae636 (patch) | |
| tree | 942a82a57f4f89fe6ff80c864f4ac1dda16d3e2d /rest_framework/tests | |
| parent | 89ec0b275039868668080be740c46ebef92cff1e (diff) | |
| download | django-rest-framework-f1f7f5d4e3cd67730c6fb2233a5e4d6afaeae636.tar.bz2 | |
Added failing test for m2m data
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/serializer.py | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index f7412a32..f90dce16 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -160,6 +160,47 @@ 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  | 
