aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests
diff options
context:
space:
mode:
authorCarles Barrobés2011-06-25 12:35:17 +0200
committerCarles Barrobés2011-06-25 12:35:17 +0200
commit0626b618ad0d3c5f8fbb6ab3facce440647fb3c0 (patch)
tree516e67b1bfebd4e4dbb9fed4f3dc11fee0afde3a /djangorestframework/tests
parentfc1640de75511006e89f033c9270ec91a9f1e4d4 (diff)
downloaddjango-rest-framework-0626b618ad0d3c5f8fbb6ab3facce440647fb3c0.tar.bz2
Support for HEAD method
Diffstat (limited to 'djangorestframework/tests')
-rw-r--r--djangorestframework/tests/content.py10
-rw-r--r--djangorestframework/tests/methods.py6
-rw-r--r--djangorestframework/tests/renderers.py9
3 files changed, 22 insertions, 3 deletions
diff --git a/djangorestframework/tests/content.py b/djangorestframework/tests/content.py
index ee3597a4..83ad72d0 100644
--- a/djangorestframework/tests/content.py
+++ b/djangorestframework/tests/content.py
@@ -6,7 +6,6 @@ from djangorestframework.compat import RequestFactory
from djangorestframework.mixins import RequestMixin
from djangorestframework.parsers import FormParser, MultiPartParser, PlainTextParser
-
class TestContentParsing(TestCase):
def setUp(self):
self.req = RequestFactory()
@@ -16,6 +15,11 @@ class TestContentParsing(TestCase):
view.request = self.req.get('/')
self.assertEqual(view.DATA, None)
+ def ensure_determines_no_content_HEAD(self, view):
+ """Ensure view.DATA returns None for HEAD request."""
+ view.request = self.req.head('/')
+ self.assertEqual(view.DATA, None)
+
def ensure_determines_form_content_POST(self, view):
"""Ensure view.DATA returns content for POST request with form content."""
form_data = {'qwerty': 'uiop'}
@@ -50,6 +54,10 @@ class TestContentParsing(TestCase):
"""Ensure view.DATA returns None for GET request with no content."""
self.ensure_determines_no_content_GET(RequestMixin())
+ def test_standard_behaviour_determines_no_content_HEAD(self):
+ """Ensure view.DATA returns None for HEAD request."""
+ self.ensure_determines_no_content_HEAD(RequestMixin())
+
def test_standard_behaviour_determines_form_content_POST(self):
"""Ensure view.DATA returns content for POST request with form content."""
self.ensure_determines_form_content_POST(RequestMixin())
diff --git a/djangorestframework/tests/methods.py b/djangorestframework/tests/methods.py
index d8f0d919..c3a3a28d 100644
--- a/djangorestframework/tests/methods.py
+++ b/djangorestframework/tests/methods.py
@@ -24,3 +24,9 @@ class TestMethodOverloading(TestCase):
view = RequestMixin()
view.request = self.req.post('/', {view._METHOD_PARAM: 'DELETE'})
self.assertEqual(view.method, 'DELETE')
+
+ def test_HEAD_is_a_valid_method(self):
+ """HEAD requests identified"""
+ view = RequestMixin()
+ view.request = self.req.head('/')
+ self.assertEqual(view.method, 'HEAD')
diff --git a/djangorestframework/tests/renderers.py b/djangorestframework/tests/renderers.py
index 54276993..c9108764 100644
--- a/djangorestframework/tests/renderers.py
+++ b/djangorestframework/tests/renderers.py
@@ -51,6 +51,13 @@ class RendererIntegrationTests(TestCase):
self.assertEquals(resp.content, RENDERER_A_SERIALIZER(DUMMYCONTENT))
self.assertEquals(resp.status_code, DUMMYSTATUS)
+ def test_head_method_serializes_no_content(self):
+ """No response must be included in HEAD requests."""
+ resp = self.client.head('/')
+ self.assertEquals(resp.status_code, DUMMYSTATUS)
+ self.assertEquals(resp['Content-Type'], RendererA.media_type)
+ self.assertEquals(resp.content, '')
+
def test_default_renderer_serializes_content_on_accept_any(self):
"""If the Accept header is set to */* the default renderer should serialize the response."""
resp = self.client.get('/', HTTP_ACCEPT='*/*')
@@ -79,8 +86,6 @@ class RendererIntegrationTests(TestCase):
resp = self.client.get('/', HTTP_ACCEPT='foo/bar')
self.assertEquals(resp.status_code, 406)
-
-
_flat_repr = '{"foo": ["bar", "baz"]}'
_indented_repr = """{