diff options
| -rw-r--r-- | djangorestframework/tests/accept.py | 11 | ||||
| -rw-r--r-- | djangorestframework/tests/authentication.py | 4 | ||||
| -rw-r--r-- | djangorestframework/tests/breadcrumbs.py | 17 | ||||
| -rw-r--r-- | djangorestframework/tests/description.py | 16 | ||||
| -rw-r--r-- | djangorestframework/tests/oauthentication.py | 9 | ||||
| -rw-r--r-- | djangorestframework/tests/renderers.py | 12 | ||||
| -rw-r--r-- | djangorestframework/tests/request.py | 4 | ||||
| -rw-r--r-- | djangorestframework/tests/response.py | 8 | ||||
| -rw-r--r-- | djangorestframework/tests/reverse.py | 4 | ||||
| -rw-r--r-- | djangorestframework/tests/throttling.py | 4 | ||||
| -rw-r--r-- | djangorestframework/utils/breadcrumbs.py | 5 | ||||
| -rw-r--r-- | djangorestframework/views.py | 6 |
12 files changed, 53 insertions, 47 deletions
diff --git a/djangorestframework/tests/accept.py b/djangorestframework/tests/accept.py index 93385493..7258f461 100644 --- a/djangorestframework/tests/accept.py +++ b/djangorestframework/tests/accept.py @@ -2,7 +2,7 @@ from django.conf.urls.defaults import patterns, url, include from django.test import TestCase from djangorestframework.compat import RequestFactory -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework.response import Response @@ -32,12 +32,12 @@ class UserAgentMungingTest(TestCase): def setUp(self): - class MockView(View): + class MockView(APIView): permissions = () response_class = Response def get(self, request): - return self.response_class({'a':1, 'b':2, 'c':3}) + return self.response_class({'a': 1, 'b': 2, 'c': 3}) self.req = RequestFactory() self.MockView = MockView @@ -53,12 +53,12 @@ class UserAgentMungingTest(TestCase): resp = self.view(req) resp.render() self.assertEqual(resp['Content-Type'], 'text/html') - + def test_dont_rewrite_msie_accept_header(self): """Turn off _IGNORE_IE_ACCEPT_HEADER, send MSIE user agent strings and ensure that we get a JSON response if we set a */* accept header.""" class IgnoreIEAcceptResponse(Response): - _IGNORE_IE_ACCEPT_HEADER=False + _IGNORE_IE_ACCEPT_HEADER = False view = self.MockView.as_view(response_class=IgnoreIEAcceptResponse) for user_agent in (MSIE_9_USER_AGENT, @@ -81,4 +81,3 @@ class UserAgentMungingTest(TestCase): resp = self.view(req) resp.render() self.assertEqual(resp['Content-Type'], 'application/json') - diff --git a/djangorestframework/tests/authentication.py b/djangorestframework/tests/authentication.py index 24c59488..79194718 100644 --- a/djangorestframework/tests/authentication.py +++ b/djangorestframework/tests/authentication.py @@ -5,13 +5,13 @@ from django.test import Client, TestCase from django.utils import simplejson as json from django.http import HttpResponse -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework import permissions import base64 -class MockView(View): +class MockView(APIView): permission_classes = (permissions.IsAuthenticated,) def post(self, request): diff --git a/djangorestframework/tests/breadcrumbs.py b/djangorestframework/tests/breadcrumbs.py index d7473c6a..ae84106c 100644 --- a/djangorestframework/tests/breadcrumbs.py +++ b/djangorestframework/tests/breadcrumbs.py @@ -1,21 +1,26 @@ from django.conf.urls.defaults import patterns, url from django.test import TestCase from djangorestframework.utils.breadcrumbs import get_breadcrumbs -from djangorestframework.views import View +from djangorestframework.views import APIView -class Root(View): + +class Root(APIView): pass -class ResourceRoot(View): + +class ResourceRoot(APIView): pass -class ResourceInstance(View): + +class ResourceInstance(APIView): pass -class NestedResourceRoot(View): + +class NestedResourceRoot(APIView): pass -class NestedResourceInstance(View): + +class NestedResourceInstance(APIView): pass urlpatterns = patterns('', diff --git a/djangorestframework/tests/description.py b/djangorestframework/tests/description.py index 212b4ca4..b88451eb 100644 --- a/djangorestframework/tests/description.py +++ b/djangorestframework/tests/description.py @@ -1,5 +1,5 @@ from django.test import TestCase -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework.compat import apply_markdown # We check that docstrings get nicely un-indented. @@ -48,21 +48,21 @@ MARKED_DOWN_gte_21 = """<h2 id="an-example-docstring">an example docstring</h2> class TestViewNamesAndDescriptions(TestCase): def test_resource_name_uses_classname_by_default(self): """Ensure Resource names are based on the classname by default.""" - class MockView(View): + class MockView(APIView): pass self.assertEquals(MockView().get_name(), 'Mock') def test_resource_name_can_be_set_explicitly(self): """Ensure Resource names can be set using the 'get_name' method.""" example = 'Some Other Name' - class MockView(View): + class MockView(APIView): def get_name(self): return example self.assertEquals(MockView().get_name(), example) def test_resource_description_uses_docstring_by_default(self): """Ensure Resource names are based on the docstring by default.""" - class MockView(View): + class MockView(APIView): """an example docstring ==================== @@ -83,7 +83,8 @@ class TestViewNamesAndDescriptions(TestCase): def test_resource_description_can_be_set_explicitly(self): """Ensure Resource descriptions can be set using the 'get_description' method.""" example = 'Some other description' - class MockView(View): + + class MockView(APIView): """docstring""" def get_description(self): return example @@ -92,14 +93,15 @@ class TestViewNamesAndDescriptions(TestCase): def test_resource_description_does_not_require_docstring(self): """Ensure that empty docstrings do not affect the Resource's description if it has been set using the 'get_description' method.""" example = 'Some other description' - class MockView(View): + + class MockView(APIView): def get_description(self): return example self.assertEquals(MockView().get_description(), example) def test_resource_description_can_be_empty(self): """Ensure that if a resource has no doctring or 'description' class attribute, then it's description is the empty string.""" - class MockView(View): + class MockView(APIView): pass self.assertEquals(MockView().get_description(), '') diff --git a/djangorestframework/tests/oauthentication.py b/djangorestframework/tests/oauthentication.py index 29f2c44e..2621317d 100644 --- a/djangorestframework/tests/oauthentication.py +++ b/djangorestframework/tests/oauthentication.py @@ -4,7 +4,7 @@ from django.conf.urls.defaults import patterns, url, include from django.contrib.auth.models import User from django.test import Client, TestCase -from djangorestframework.views import View +from djangorestframework.views import APIView # Since oauth2 / django-oauth-plus are optional dependancies, we don't want to # always run these tests. @@ -20,7 +20,7 @@ except ImportError: else: # Alrighty, we're good to go here. - class ClientView(View): + class ClientView(APIView): def get(self, request): return {'resource': 'Protected!'} @@ -30,7 +30,6 @@ else: url(r'^restframework/', include('djangorestframework.urls', namespace='djangorestframework')), ) - class OAuthTests(TestCase): """ OAuth authentication: @@ -117,12 +116,12 @@ else: # Starting the test here self.client.login(username=self.username, password=self.password) - parameters = {'oauth_token': token.key,} + parameters = {'oauth_token': token.key} response = self.client.get("/oauth/authorize/", parameters) self.assertEqual(response.status_code, 200) self.failIf(not response.content.startswith('Fake authorize view for api.example.com with params: oauth_token=')) self.assertEqual(token.is_approved, 0) - parameters['authorize_access'] = 1 # fake authorization by the user + parameters['authorize_access'] = 1 # fake authorization by the user response = self.client.post("/oauth/authorize/", parameters) self.assertEqual(response.status_code, 302) self.failIf(not response['Location'].startswith('http://api.example.com/request_token_ready?oauth_verifier=')) diff --git a/djangorestframework/tests/renderers.py b/djangorestframework/tests/renderers.py index dc30f487..8b14038d 100644 --- a/djangorestframework/tests/renderers.py +++ b/djangorestframework/tests/renderers.py @@ -5,7 +5,7 @@ from django.test import TestCase from djangorestframework import status from djangorestframework.response import Response -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework.renderers import BaseRenderer, JSONRenderer, YAMLRenderer, \ XMLRenderer, JSONPRenderer, DocumentingHTMLRenderer from djangorestframework.parsers import YAMLParser, XMLParser @@ -50,7 +50,7 @@ class RendererB(BaseRenderer): return RENDERER_B_SERIALIZER(obj) -class MockView(View): +class MockView(APIView): renderers = (RendererA, RendererB) def get(self, request, **kwargs): @@ -58,20 +58,20 @@ class MockView(View): return self.render(response) -class MockGETView(View): +class MockGETView(APIView): def get(self, request, **kwargs): return {'foo': ['bar', 'baz']} -class HTMLView(View): +class HTMLView(APIView): renderers = (DocumentingHTMLRenderer, ) def get(self, request, **kwargs): return 'text' -class HTMLView1(View): +class HTMLView1(APIView): renderers = (DocumentingHTMLRenderer, JSONRenderer) def get(self, request, **kwargs): @@ -222,7 +222,7 @@ class JSONRendererTests(TestCase): self.assertEquals(strip_trailing_whitespace(content), _indented_repr) -class MockGETView(View): +class MockGETView(APIView): def get(self, request, *args, **kwargs): return Response({'foo': ['bar', 'baz']}) diff --git a/djangorestframework/tests/request.py b/djangorestframework/tests/request.py index 1d74ea32..7ad99c07 100644 --- a/djangorestframework/tests/request.py +++ b/djangorestframework/tests/request.py @@ -15,7 +15,7 @@ from djangorestframework.parsers import ( ) from djangorestframework.request import Request from djangorestframework.response import Response -from djangorestframework.views import View +from djangorestframework.views import APIView factory = RequestFactory() @@ -207,7 +207,7 @@ class TestContentParsing(TestCase): # self.assertEqual(request.DATA.items(), data.items()) -class MockView(View): +class MockView(APIView): authentication = (UserLoggedInAuthentication,) def post(self, request): diff --git a/djangorestframework/tests/response.py b/djangorestframework/tests/response.py index ded0a3da..a0b76610 100644 --- a/djangorestframework/tests/response.py +++ b/djangorestframework/tests/response.py @@ -5,7 +5,7 @@ from django.conf.urls.defaults import patterns, url, include from django.test import TestCase from djangorestframework.response import Response, NotAcceptable -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework.compat import RequestFactory from djangorestframework import status from djangorestframework.renderers import ( @@ -167,21 +167,21 @@ class RendererB(BaseRenderer): return RENDERER_B_SERIALIZER(obj) -class MockView(View): +class MockView(APIView): renderers = (RendererA, RendererB) def get(self, request, **kwargs): return Response(DUMMYCONTENT, status=DUMMYSTATUS) -class HTMLView(View): +class HTMLView(APIView): renderers = (DocumentingHTMLRenderer, ) def get(self, request, **kwargs): return Response('text') -class HTMLView1(View): +class HTMLView1(APIView): renderers = (DocumentingHTMLRenderer, JSONRenderer) def get(self, request, **kwargs): diff --git a/djangorestframework/tests/reverse.py b/djangorestframework/tests/reverse.py index 8d467513..b4791135 100644 --- a/djangorestframework/tests/reverse.py +++ b/djangorestframework/tests/reverse.py @@ -4,11 +4,11 @@ from django.utils import simplejson as json from djangorestframework.renderers import JSONRenderer from djangorestframework.reverse import reverse -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework.response import Response -class MyView(View): +class MyView(APIView): """ Mock resource which simply returns a URL, so that we can ensure that reversed URLs are fully qualified. diff --git a/djangorestframework/tests/throttling.py b/djangorestframework/tests/throttling.py index ad22d2d2..a8e446e8 100644 --- a/djangorestframework/tests/throttling.py +++ b/djangorestframework/tests/throttling.py @@ -7,12 +7,12 @@ from django.contrib.auth.models import User from django.core.cache import cache from djangorestframework.compat import RequestFactory -from djangorestframework.views import View +from djangorestframework.views import APIView from djangorestframework.permissions import PerUserThrottling, PerViewThrottling from djangorestframework.response import Response -class MockView(View): +class MockView(APIView): permission_classes = (PerUserThrottling,) throttle = '3/sec' diff --git a/djangorestframework/utils/breadcrumbs.py b/djangorestframework/utils/breadcrumbs.py index 85e13a5a..319ce5f9 100644 --- a/djangorestframework/utils/breadcrumbs.py +++ b/djangorestframework/utils/breadcrumbs.py @@ -1,9 +1,10 @@ from django.core.urlresolvers import resolve + def get_breadcrumbs(url): """Given a url returns a list of breadcrumbs, which are each a tuple of (name, url).""" - from djangorestframework.views import View + from djangorestframework.views import APIView def breadcrumbs_recursive(url, breadcrumbs_list): """Add tuples of (name, url) to the breadcrumbs list, progressively chomping off parts of the url.""" @@ -14,7 +15,7 @@ def get_breadcrumbs(url): pass else: # Check if this is a REST framework view, and if so add it to the breadcrumbs - if isinstance(getattr(view, 'cls_instance', None), View): + if isinstance(getattr(view, 'cls_instance', None), APIView): breadcrumbs_list.insert(0, (view.cls_instance.get_name(), url)) if url == '': diff --git a/djangorestframework/views.py b/djangorestframework/views.py index 10b0dccb..389f2044 100644 --- a/djangorestframework/views.py +++ b/djangorestframework/views.py @@ -12,7 +12,7 @@ from django.utils.html import escape from django.utils.safestring import mark_safe from django.views.decorators.csrf import csrf_exempt -from djangorestframework.compat import View, apply_markdown +from djangorestframework.compat import View as _View, apply_markdown from djangorestframework.response import Response from djangorestframework.request import Request from djangorestframework.settings import api_settings @@ -62,7 +62,7 @@ def _camelcase_to_spaces(content): return re.sub(camelcase_boundry, ' \\1', content).strip() -class APIView(View): +class APIView(_View): """ Handles incoming requests and maps them to REST operations. Performs request deserialization, response serialization, authentication and input validation. @@ -96,7 +96,7 @@ class APIView(View): as an attribute on the callable function. This allows us to discover information about the view when we do URL reverse lookups. """ - view = super(View, cls).as_view(**initkwargs) + view = super(APIView, cls).as_view(**initkwargs) view.cls_instance = cls(**initkwargs) return view |
