aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests
diff options
context:
space:
mode:
authorTom Christie2011-05-10 12:21:48 +0100
committerTom Christie2011-05-10 12:21:48 +0100
commit527e4ffdf7f7798dc17757a26d8fd6b155a49bf9 (patch)
tree8a7811d692c136e78dd3ad64a6219d30f501d194 /djangorestframework/tests
parent8f58ee489d34b200acfc2666816eb32e47c8cef5 (diff)
downloaddjango-rest-framework-527e4ffdf7f7798dc17757a26d8fd6b155a49bf9.tar.bz2
renderer API work
Diffstat (limited to 'djangorestframework/tests')
-rw-r--r--djangorestframework/tests/renderers.py45
1 files changed, 38 insertions, 7 deletions
diff --git a/djangorestframework/tests/renderers.py b/djangorestframework/tests/renderers.py
index df0d9c8d..fcc405a1 100644
--- a/djangorestframework/tests/renderers.py
+++ b/djangorestframework/tests/renderers.py
@@ -2,9 +2,10 @@ from django.conf.urls.defaults import patterns, url
from django import http
from django.test import TestCase
from djangorestframework.compat import View
-from djangorestframework.renderers import BaseRenderer
+from djangorestframework.renderers import BaseRenderer, JSONRenderer
from djangorestframework.mixins import ResponseMixin
from djangorestframework.response import Response
+from djangorestframework.utils.mediatypes import add_media_type_param
DUMMYSTATUS = 200
DUMMYCONTENT = 'dummycontent'
@@ -20,14 +21,14 @@ class MockView(ResponseMixin, View):
class RendererA(BaseRenderer):
media_type = 'mock/renderera'
- def render(self, output, verbose=False):
- return RENDERER_A_SERIALIZER(output)
+ def render(self, obj=None, content_type=None):
+ return RENDERER_A_SERIALIZER(obj)
class RendererB(BaseRenderer):
media_type = 'mock/rendererb'
- def render(self, output, verbose=False):
- return RENDERER_B_SERIALIZER(output)
+ def render(self, obj=None, content_type=None):
+ return RENDERER_B_SERIALIZER(obj)
urlpatterns = patterns('',
@@ -36,7 +37,9 @@ urlpatterns = patterns('',
class RendererIntegrationTests(TestCase):
- """End-to-end testing of renderers using an RendererMixin on a generic view."""
+ """
+ End-to-end testing of renderers using an RendererMixin on a generic view.
+ """
urls = 'djangorestframework.tests.renderers'
@@ -73,4 +76,32 @@ class RendererIntegrationTests(TestCase):
def test_unsatisfiable_accept_header_on_request_returns_406_status(self):
"""If the Accept header is unsatisfiable we should return a 406 Not Acceptable response."""
resp = self.client.get('/', HTTP_ACCEPT='foo/bar')
- self.assertEquals(resp.status_code, 406) \ No newline at end of file
+ self.assertEquals(resp.status_code, 406)
+
+
+
+_flat_repr = '{"foo": ["bar", "baz"]}'
+
+_indented_repr = """{
+ "foo": [
+ "bar",
+ "baz"
+ ]
+}"""
+
+
+class JSONRendererTests(TestCase):
+ """
+ Tests specific to the JSON Renderer
+ """
+ def test_without_content_type_args(self):
+ obj = {'foo':['bar','baz']}
+ renderer = JSONRenderer(None)
+ content = renderer.render(obj, 'application/json')
+ self.assertEquals(content, _flat_repr)
+
+ def test_with_content_type_args(self):
+ obj = {'foo':['bar','baz']}
+ renderer = JSONRenderer(None)
+ content = renderer.render(obj, 'application/json; indent=2')
+ self.assertEquals(content, _indented_repr)