diff options
| author | Tom Christie | 2011-05-10 12:21:48 +0100 |
|---|---|---|
| committer | Tom Christie | 2011-05-10 12:21:48 +0100 |
| commit | 527e4ffdf7f7798dc17757a26d8fd6b155a49bf9 (patch) | |
| tree | 8a7811d692c136e78dd3ad64a6219d30f501d194 /djangorestframework/tests | |
| parent | 8f58ee489d34b200acfc2666816eb32e47c8cef5 (diff) | |
| download | django-rest-framework-527e4ffdf7f7798dc17757a26d8fd6b155a49bf9.tar.bz2 | |
renderer API work
Diffstat (limited to 'djangorestframework/tests')
| -rw-r--r-- | djangorestframework/tests/renderers.py | 45 |
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) |
