aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests
diff options
context:
space:
mode:
authorMichele Lazzeri2012-01-12 18:04:18 +0100
committerMichele Lazzeri2012-01-12 18:04:18 +0100
commit1bec6f2d5ed3d27b39ef543e0e4afb23678cfe4b (patch)
tree45d4d31baac1c83d519222ab40a8753a5cf9ff31 /djangorestframework/tests
parent2966c343520147c4027ea48f3fea47913da3ebdb (diff)
downloaddjango-rest-framework-1bec6f2d5ed3d27b39ef543e0e4afb23678cfe4b.tar.bz2
add testcate XMLRendererTestCase.test_render_and_parse_complex_data
Diffstat (limited to 'djangorestframework/tests')
-rw-r--r--djangorestframework/tests/renderers.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/djangorestframework/tests/renderers.py b/djangorestframework/tests/renderers.py
index e80f0f20..d000df27 100644
--- a/djangorestframework/tests/renderers.py
+++ b/djangorestframework/tests/renderers.py
@@ -6,7 +6,7 @@ from djangorestframework.views import View
from djangorestframework.compat import View as DjangoView
from djangorestframework.renderers import BaseRenderer, JSONRenderer, YAMLRenderer, \
XMLRenderer, JSONPRenderer, DocumentingHTMLRenderer
-from djangorestframework.parsers import JSONParser, YAMLParser
+from djangorestframework.parsers import JSONParser, YAMLParser, XMLParser
from djangorestframework.mixins import ResponseMixin
from djangorestframework.response import Response
@@ -479,6 +479,33 @@ class XMLRendererTestCase(TestCase):
content = renderer.render({'field': None}, 'application/xml')
self.assertXMLContains(content, '<field></field>')
+ def test_render_and_parse_complex_data(self):
+ """
+ Test XML rendering.
+ """
+ renderer = XMLRenderer(None)
+ complex_data_in = {
+ "creation_date": datetime.datetime(2011, 12, 25, 12, 45, 00),
+ "name": "name",
+ "sub_data_list": [
+ {
+ "sub_id": 1,
+ "sub_name": "first"
+ },
+ {
+ "sub_id": 2,
+ "sub_name": "second"
+ }
+ ]
+ }
+
+ content = StringIO(renderer.render(complex_data_in, 'application/xml'))
+
+ parser = XMLParser(None)
+ complex_data_out, dummy = parser.parse(content)
+ error_msg = "complex data differs!IN:\n %s \n\n OUT:\n %s" % (repr(complex_data_in), repr(complex_data_out))
+ self.assertDictEqual(complex_data_in, complex_data_out, error_msg)
+
def assertXMLContains(self, xml, string):
self.assertTrue(xml.startswith('<?xml version="1.0" encoding="utf-8"?>\n<root>'))
self.assertTrue(xml.endswith('</root>'))