aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--djangorestframework/tests/accept.py11
-rw-r--r--djangorestframework/tests/authentication.py4
-rw-r--r--djangorestframework/tests/breadcrumbs.py17
-rw-r--r--djangorestframework/tests/description.py16
-rw-r--r--djangorestframework/tests/oauthentication.py9
-rw-r--r--djangorestframework/tests/renderers.py12
-rw-r--r--djangorestframework/tests/request.py4
-rw-r--r--djangorestframework/tests/response.py8
-rw-r--r--djangorestframework/tests/reverse.py4
-rw-r--r--djangorestframework/tests/throttling.py4
-rw-r--r--djangorestframework/utils/breadcrumbs.py5
-rw-r--r--djangorestframework/views.py6
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