Don't pass an instance in to delete_instance, as it should be inferred

This commit is contained in:
Mjumbe Wawatu Poe 2012-08-28 16:10:05 -04:00
parent a07c615905
commit eb407374f0
2 changed files with 43 additions and 3 deletions

View File

@ -695,7 +695,7 @@ class DeleteModelMixin(ModelMixin, InstanceReaderMixin, InstanceWriterMixin):
Behavior to delete a `model` instance on DELETE requests
"""
def delete(self, request, *args, **kwargs):
self.delete_instance(instance)
self.delete_instance()
return

View File

@ -4,8 +4,9 @@ from django.utils import simplejson as json
from djangorestframework import status
from djangorestframework.compat import RequestFactory
from django.contrib.auth.models import Group, User
from djangorestframework.mixins import (CreateModelMixin, PaginatorMixin,
ReadModelMixin, UpdateModelMixin)
from djangorestframework.mixins import (CreateModelMixin, DeleteModelMixin,
PaginatorMixin, ReadModelMixin,
UpdateModelMixin)
from djangorestframework.resources import ModelResource
from djangorestframework.response import Response, ErrorResponse
from djangorestframework.tests.models import CustomUser
@ -333,6 +334,45 @@ class TestModelUpdate(TestModelsTestCase):
self.assertEquals('foo2', response.groups.all()[1].name)
class TestModelDelete(TestModelsTestCase):
"""Tests on DeleteModelMixin"""
def setUp(self):
super(TestModelsTestCase, self).setUp()
self.req = RequestFactory()
def test_delete(self):
group = Group.objects.create(name='my group')
self.assertEquals(1, Group.objects.count())
class GroupResource(ModelResource):
model = Group
# Delete existing
request = self.req.delete('/groups/' + str(group.pk))
mixin = DeleteModelMixin()
mixin.resource = GroupResource
mixin.request = request
mixin.args = ()
mixin.kwargs = {'pk': group.pk}
response = mixin.delete(request, **mixin.kwargs)
self.assertEquals(0, Group.objects.count())
# Delete at non-existing
request = self.req.delete('/groups/' + str(group.pk))
mixin = DeleteModelMixin()
mixin.resource = GroupResource
mixin.request = request
mixin.args = ()
mixin.kwargs = {'pk': group.pk}
self.assertRaises(ErrorResponse, mixin.delete, request, **mixin.kwargs)
class MockPaginatorView(PaginatorMixin, View):
total = 60