diff options
| author | Tom Christie | 2012-09-28 16:23:46 +0100 |
|---|---|---|
| committer | Tom Christie | 2012-09-28 16:23:46 +0100 |
| commit | 0853316545ad39c314f56ee559ce56596e578d2b (patch) | |
| tree | f9af6b39312cd50265bf082eac94db4f7e48a696 /rest_framework/tests | |
| parent | 6cf2874cf2cdd60d559f472afcb1449e72eae2e1 (diff) | |
| download | django-rest-framework-0853316545ad39c314f56ee559ce56596e578d2b.tar.bz2 | |
Add more tests for generic views
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/generics.py | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py index fd1060a8..0ce297e0 100644 --- a/rest_framework/tests/generics.py +++ b/rest_framework/tests/generics.py @@ -29,14 +29,14 @@ class TestRootView(TestCase): {'id': obj.id, 'text': obj.text} for obj in self.objects.all() ] + self.view = RootView.as_view() def test_get_root_view(self): """ GET requests to RootAPIView should return list of objects. """ - view = RootView.as_view() request = factory.get('/') - response = view(request).render() + response = self.view(request).render() self.assertEquals(response.status_code, status.HTTP_200_OK) self.assertEquals(response.data, self.data) @@ -44,15 +44,33 @@ class TestRootView(TestCase): """ POST requests to RootAPIView should create a new object. """ - view = RootView.as_view() content = {'text': 'foobar'} request = factory.post('/', json.dumps(content), content_type='application/json') - response = view(request).render() + response = self.view(request).render() self.assertEquals(response.status_code, status.HTTP_201_CREATED) self.assertEquals(response.data, {'id': 4, 'text': u'foobar'}) created = self.objects.get(id=4) self.assertEquals(created.text, 'foobar') + def test_put_root_view(self): + """ + PUT requests to RootAPIView should not be allowed + """ + content = {'text': 'foobar'} + request = factory.put('/', json.dumps(content), content_type='application/json') + response = self.view(request).render() + self.assertEquals(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEquals(response.content, '{"detail": "Method \'PUT\' not allowed."}') + + def test_delete_root_view(self): + """ + DELETE requests to RootAPIView should not be allowed + """ + request = factory.delete('/') + response = self.view(request).render() + self.assertEquals(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEquals(response.content, '{"detail": "Method \'DELETE\' not allowed."}') + class TestInstanceView(TestCase): def setUp(self): @@ -67,25 +85,34 @@ class TestInstanceView(TestCase): {'id': obj.id, 'text': obj.text} for obj in self.objects.all() ] + self.view = InstanceView.as_view() def test_get_instance_view(self): """ GET requests to InstanceAPIView should return a single object. """ - view = InstanceView.as_view() request = factory.get('/1') - response = view(request, pk=1).render() + response = self.view(request, pk=1).render() self.assertEquals(response.status_code, status.HTTP_200_OK) self.assertEquals(response.data, self.data[0]) + def test_post_instance_view(self): + """ + POST requests to InstanceAPIView should not be allowed + """ + content = {'text': 'foobar'} + request = factory.post('/', json.dumps(content), content_type='application/json') + response = self.view(request).render() + self.assertEquals(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEquals(response.content, '{"detail": "Method \'POST\' not allowed."}') + def test_put_instance_view(self): """ PUT requests to InstanceAPIView should update an object. """ - view = InstanceView.as_view() content = {'text': 'foobar'} request = factory.put('/1', json.dumps(content), content_type='application/json') - response = view(request, pk=1).render() + response = self.view(request, pk=1).render() self.assertEquals(response.status_code, status.HTTP_200_OK) self.assertEquals(response.data, {'id': 1, 'text': 'foobar'}) updated = self.objects.get(id=1) @@ -95,9 +122,8 @@ class TestInstanceView(TestCase): """ DELETE requests to InstanceAPIView should delete an object. """ - view = InstanceView.as_view() request = factory.delete('/1') - response = view(request, pk=1).render() + response = self.view(request, pk=1).render() self.assertEquals(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEquals(response.content, '') ids = [obj.id for obj in self.objects.all()] |
