diff options
| author | Tom Christie | 2011-06-15 16:25:59 +0100 |
|---|---|---|
| committer | Tom Christie | 2011-06-15 16:25:59 +0100 |
| commit | f02a4e189063cbe67c3e452e06542f0856863f41 (patch) | |
| tree | 3a37803ece2c6cb5c7d002763cc9a176682f3bbb | |
| parent | 06f69b4dcece6d13d89d2fcfeae78a5a1c735718 (diff) | |
| download | django-rest-framework-f02a4e189063cbe67c3e452e06542f0856863f41.tar.bz2 | |
Additional test for JSON
| -rw-r--r-- | djangorestframework/tests/renderers.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/djangorestframework/tests/renderers.py b/djangorestframework/tests/renderers.py index 54276993..d403873f 100644 --- a/djangorestframework/tests/renderers.py +++ b/djangorestframework/tests/renderers.py @@ -1,12 +1,16 @@ from django.conf.urls.defaults import patterns, url from django import http from django.test import TestCase + from djangorestframework.compat import View as DjangoView from djangorestframework.renderers import BaseRenderer, JSONRenderer +from djangorestframework.parsers import JSONParser from djangorestframework.mixins import ResponseMixin from djangorestframework.response import Response from djangorestframework.utils.mediatypes import add_media_type_param +from StringIO import StringIO + DUMMYSTATUS = 200 DUMMYCONTENT = 'dummycontent' @@ -95,14 +99,35 @@ class JSONRendererTests(TestCase): """ Tests specific to the JSON Renderer """ + def test_without_content_type_args(self): + """ + Test basic JSON rendering. + """ 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): + """ + Test JSON rendering with additional content type arguments supplied. + """ obj = {'foo':['bar','baz']} renderer = JSONRenderer(None) content = renderer.render(obj, 'application/json; indent=2') self.assertEquals(content, _indented_repr) + + def test_render_and_parse(self): + """ + Test rendering and then parsing returns the original object. + IE obj -> render -> parse -> obj. + """ + obj = {'foo':['bar','baz']} + + renderer = JSONRenderer(None) + parser = JSONParser(None) + + content = renderer.render(obj, 'application/json') + (data, files) = parser.parse(StringIO(content)) + self.assertEquals(obj, data) |
