mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-11 04:07:39 +03:00
Added failing test for m2m data
This commit is contained in:
parent
89ec0b2750
commit
f1f7f5d4e3
|
@ -262,7 +262,7 @@ class DocumentingHTMLRenderer(BaseRenderer):
|
||||||
try:
|
try:
|
||||||
fields[k] = field_mapping[v.__class__]()
|
fields[k] = field_mapping[v.__class__]()
|
||||||
except KeyError:
|
except KeyError:
|
||||||
fields[k] = forms.CharField
|
fields[k] = forms.CharField()
|
||||||
|
|
||||||
OnTheFlyForm = type("OnTheFlyForm", (forms.Form,), fields)
|
OnTheFlyForm = type("OnTheFlyForm", (forms.Form,), fields)
|
||||||
if obj and not view.request.method == 'DELETE': # Don't fill in the form when the object is deleted
|
if obj and not view.request.method == 'DELETE': # Don't fill in the form when the object is deleted
|
||||||
|
|
|
@ -160,6 +160,47 @@ class ManyToManyTests(TestCase):
|
||||||
self.assertEquals(instance.pk, 1)
|
self.assertEquals(instance.pk, 1)
|
||||||
self.assertEquals(list(instance.rel.all()), [self.anchor, new_anchor])
|
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):
|
# def test_deserialization_for_update(self):
|
||||||
# serializer = self.serializer_class(self.data, instance=self.instance)
|
# serializer = self.serializer_class(self.data, instance=self.instance)
|
||||||
# expected = self.instance
|
# expected = self.instance
|
||||||
|
|
Loading…
Reference in New Issue
Block a user