aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests/views.py
diff options
context:
space:
mode:
authorTom Christie2012-02-25 18:45:17 +0000
committerTom Christie2012-02-25 18:45:17 +0000
commit1cde31c86d9423e9b7a7409c2ef2ba7c0500e47f (patch)
treeea24bce0f24507aa43f408776ccf7324f204256d /djangorestframework/tests/views.py
parent5fd4c639d7c64572dd07dc31dcd627bed9469b05 (diff)
downloaddjango-rest-framework-1cde31c86d9423e9b7a7409c2ef2ba7c0500e47f.tar.bz2
Massive merge
Diffstat (limited to 'djangorestframework/tests/views.py')
-rw-r--r--djangorestframework/tests/views.py54
1 files changed, 26 insertions, 28 deletions
diff --git a/djangorestframework/tests/views.py b/djangorestframework/tests/views.py
index d4189087..00bce002 100644
--- a/djangorestframework/tests/views.py
+++ b/djangorestframework/tests/views.py
@@ -1,16 +1,17 @@
-from django.conf.urls.defaults import patterns, url
+from django.core.urlresolvers import reverse
+from django.conf.urls.defaults import patterns, url, include
from django.http import HttpResponse
from django.test import TestCase
-from django.test import Client
from django import forms
from django.db import models
+from django.utils import simplejson as json
-from djangorestframework.views import View
-from djangorestframework.parsers import JSONParser
from djangorestframework.resources import ModelResource
-from djangorestframework.views import ListOrCreateModelView, InstanceModelView
-
-from StringIO import StringIO
+from djangorestframework.views import (
+ View,
+ ListOrCreateModelView,
+ InstanceModelView
+)
class MockView(View):
@@ -24,6 +25,7 @@ class MockViewFinal(View):
def final(self, request, response, *args, **kwargs):
return HttpResponse('{"test": "passed"}', content_type="application/json")
+
class ResourceMockView(View):
"""This is a resource-based mock view"""
@@ -34,6 +36,7 @@ class ResourceMockView(View):
form = MockForm
+
class MockResource(ModelResource):
"""This is a mock model-based resource"""
@@ -45,16 +48,16 @@ class MockResource(ModelResource):
model = MockResourceModel
fields = ('foo', 'bar', 'baz')
-urlpatterns = patterns('djangorestframework.utils.staticviews',
- url(r'^accounts/login$', 'api_login'),
- url(r'^accounts/logout$', 'api_logout'),
+urlpatterns = patterns('',
url(r'^mock/$', MockView.as_view()),
url(r'^mock/final/$', MockViewFinal.as_view()),
url(r'^resourcemock/$', ResourceMockView.as_view()),
url(r'^model/$', ListOrCreateModelView.as_view(resource=MockResource)),
url(r'^model/(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MockResource)),
+ url(r'^restframework/', include('djangorestframework.urls', namespace='djangorestframework')),
)
+
class BaseViewTests(TestCase):
"""Test the base view class of djangorestframework"""
urls = 'djangorestframework.tests.views'
@@ -62,8 +65,7 @@ class BaseViewTests(TestCase):
def test_view_call_final(self):
response = self.client.options('/mock/final/')
self.assertEqual(response['Content-Type'].split(';')[0], "application/json")
- parser = JSONParser(None)
- (data, files) = parser.parse(StringIO(response.content))
+ data = json.loads(response.content)
self.assertEqual(data['test'], 'passed')
def test_options_method_simple_view(self):
@@ -77,9 +79,9 @@ class BaseViewTests(TestCase):
self._verify_options_response(response,
name='Resource Mock',
description='This is a resource-based mock view',
- fields={'foo':'BooleanField',
- 'bar':'IntegerField',
- 'baz':'CharField',
+ fields={'foo': 'BooleanField',
+ 'bar': 'IntegerField',
+ 'baz': 'CharField',
})
def test_options_method_model_resource_list_view(self):
@@ -87,9 +89,9 @@ class BaseViewTests(TestCase):
self._verify_options_response(response,
name='Mock List',
description='This is a mock model-based resource',
- fields={'foo':'BooleanField',
- 'bar':'IntegerField',
- 'baz':'CharField',
+ fields={'foo': 'BooleanField',
+ 'bar': 'IntegerField',
+ 'baz': 'CharField',
})
def test_options_method_model_resource_detail_view(self):
@@ -97,17 +99,16 @@ class BaseViewTests(TestCase):
self._verify_options_response(response,
name='Mock Instance',
description='This is a mock model-based resource',
- fields={'foo':'BooleanField',
- 'bar':'IntegerField',
- 'baz':'CharField',
+ fields={'foo': 'BooleanField',
+ 'bar': 'IntegerField',
+ 'baz': 'CharField',
})
def _verify_options_response(self, response, name, description, fields=None, status=200,
mime_type='application/json'):
self.assertEqual(response.status_code, status)
self.assertEqual(response['Content-Type'].split(';')[0], mime_type)
- parser = JSONParser(None)
- (data, files) = parser.parse(StringIO(response.content))
+ data = json.loads(response.content)
self.assertTrue('application/json' in data['renders'])
self.assertEqual(name, data['name'])
self.assertEqual(description, data['description'])
@@ -123,15 +124,12 @@ class ExtraViewsTests(TestCase):
def test_login_view(self):
"""Ensure the login view exists"""
- response = self.client.get('/accounts/login')
+ response = self.client.get(reverse('djangorestframework:login'))
self.assertEqual(response.status_code, 200)
self.assertEqual(response['Content-Type'].split(';')[0], 'text/html')
def test_logout_view(self):
"""Ensure the logout view exists"""
- response = self.client.get('/accounts/logout')
+ response = self.client.get(reverse('djangorestframework:logout'))
self.assertEqual(response.status_code, 200)
self.assertEqual(response['Content-Type'].split(';')[0], 'text/html')
-
- # TODO: Add login/logout behaviour tests
-