Commit a53101be by Tom Drummond

More tests for overloaded json requests and normal json requests

parent 7e2e3cbf
...@@ -114,7 +114,7 @@ class TestContentParsing(TestCase): ...@@ -114,7 +114,7 @@ class TestContentParsing(TestCase):
self.assertEqual(view.DATA.items(), form_data.items()) self.assertEqual(view.DATA.items(), form_data.items())
self.assertEqual(view.request.POST.items(), form_data.items()) self.assertEqual(view.request.POST.items(), form_data.items())
def test_empty_post_after_data_for_json(self): def test_accessing_post_after_data_for_json(self):
"""Ensures request.POST can be accessed after request.DATA in json request""" """Ensures request.POST can be accessed after request.DATA in json request"""
from django.utils import simplejson as json from django.utils import simplejson as json
...@@ -125,6 +125,22 @@ class TestContentParsing(TestCase): ...@@ -125,6 +125,22 @@ class TestContentParsing(TestCase):
view = RequestMixin() view = RequestMixin()
view.parsers = (JSONParser,) view.parsers = (JSONParser,)
view.request = self.req.post('/', content, content_type=content_type)
self.assertEqual(view.DATA.items(), data.items())
self.assertEqual(view.request.POST.items(), [])
def test_accessing_post_after_data_for_overloaded_json(self):
"""Ensures request.POST can be accessed after request.DATA in overloaded json request"""
from django.utils import simplejson as json
data = {'qwerty': 'uiop'}
content = json.dumps(data)
content_type = 'application/json'
view = RequestMixin()
view.parsers = (JSONParser,)
form_data = {view._CONTENT_PARAM: content, form_data = {view._CONTENT_PARAM: content,
view._CONTENTTYPE_PARAM: content_type} view._CONTENTTYPE_PARAM: content_type}
...@@ -143,7 +159,7 @@ class TestContentParsing(TestCase): ...@@ -143,7 +159,7 @@ class TestContentParsing(TestCase):
self.assertEqual(view.request.POST.items(), form_data.items()) self.assertEqual(view.request.POST.items(), form_data.items())
self.assertEqual(view.DATA.items(), form_data.items()) self.assertEqual(view.DATA.items(), form_data.items())
def test_accessing_data_after_post_json(self): def test_accessing_data_after_post_for_json(self):
"""Ensures request.DATA can be accessed after request.POST in json request""" """Ensures request.DATA can be accessed after request.POST in json request"""
from django.utils import simplejson as json from django.utils import simplejson as json
...@@ -154,6 +170,26 @@ class TestContentParsing(TestCase): ...@@ -154,6 +170,26 @@ class TestContentParsing(TestCase):
view = RequestMixin() view = RequestMixin()
view.parsers = (JSONParser,) view.parsers = (JSONParser,)
view.request = self.req.post('/', content, content_type=content_type)
post_items = view.request.POST.items()
self.assertEqual(len(post_items), 1)
self.assertEqual(len(post_items[0]), 2)
self.assertEqual(post_items[0][0], content)
self.assertEqual(view.DATA.items(), data.items())
def test_accessing_data_after_post_for_overloaded_json(self):
"""Ensures request.DATA can be accessed after request.POST in overloaded json request"""
from django.utils import simplejson as json
data = {'qwerty': 'uiop'}
content = json.dumps(data)
content_type = 'application/json'
view = RequestMixin()
view.parsers = (JSONParser,)
form_data = {view._CONTENT_PARAM: content, form_data = {view._CONTENT_PARAM: content,
view._CONTENTTYPE_PARAM: content_type} view._CONTENTTYPE_PARAM: content_type}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment