aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests/parsers.py
diff options
context:
space:
mode:
authorTom Christie2011-05-12 12:55:13 +0100
committerTom Christie2011-05-12 12:55:13 +0100
commit15f9e7c56699d31043782045a9fe47c354f612cb (patch)
tree2c58441416a877d0afba22d85aea691190a17fa1 /djangorestframework/tests/parsers.py
parent4d126796752cc3c79a24fd9caed49da6c525096f (diff)
downloaddjango-rest-framework-15f9e7c56699d31043782045a9fe47c354f612cb.tar.bz2
refactoring resource specfic stuff into ResourceMixin - validators now defunct
Diffstat (limited to 'djangorestframework/tests/parsers.py')
-rw-r--r--djangorestframework/tests/parsers.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/djangorestframework/tests/parsers.py b/djangorestframework/tests/parsers.py
index 88aad880..2720f4c7 100644
--- a/djangorestframework/tests/parsers.py
+++ b/djangorestframework/tests/parsers.py
@@ -24,7 +24,8 @@ Here is some example data, which would eventually be sent along with a post requ
Default behaviour for :class:`parsers.FormParser`, is to return a single value for each parameter :
- >>> FormParser(some_view).parse(StringIO(inpt)) == {'key1': 'bla1', 'key2': 'blo1'}
+ >>> (data, files) = FormParser(some_view).parse(StringIO(inpt))
+ >>> data == {'key1': 'bla1', 'key2': 'blo1'}
True
However, you can customize this behaviour by subclassing :class:`parsers.FormParser`, and overriding :meth:`parsers.FormParser.is_a_list` :
@@ -36,7 +37,8 @@ However, you can customize this behaviour by subclassing :class:`parsers.FormPar
This new parser only flattens the lists of parameters that contain a single value.
- >>> MyFormParser(some_view).parse(StringIO(inpt)) == {'key1': 'bla1', 'key2': ['blo1', 'blo2']}
+ >>> (data, files) = MyFormParser(some_view).parse(StringIO(inpt))
+ >>> data == {'key1': 'bla1', 'key2': ['blo1', 'blo2']}
True
.. note:: The same functionality is available for :class:`parsers.MultiPartParser`.
@@ -61,7 +63,8 @@ The browsers usually strip the parameter completely. A hack to avoid this, and t
:class:`parsers.FormParser` strips the values ``_empty`` from all the lists.
- >>> MyFormParser(some_view).parse(StringIO(inpt)) == {'key1': 'blo1'}
+ >>> (data, files) = MyFormParser(some_view).parse(StringIO(inpt))
+ >>> data == {'key1': 'blo1'}
True
Oh ... but wait a second, the parameter ``key2`` isn't even supposed to be a list, so the parser just stripped it.
@@ -71,7 +74,8 @@ Oh ... but wait a second, the parameter ``key2`` isn't even supposed to be a lis
... def is_a_list(self, key, val_list):
... return key == 'key2'
...
- >>> MyFormParser(some_view).parse(StringIO(inpt)) == {'key1': 'blo1', 'key2': []}
+ >>> (data, files) = MyFormParser(some_view).parse(StringIO(inpt))
+ >>> data == {'key1': 'blo1', 'key2': []}
True
Better like that. Note that you can configure something else than ``_empty`` for the empty value by setting :attr:`parsers.FormParser.EMPTY_VALUE`.
@@ -123,7 +127,7 @@ class TestMultiPartParser(TestCase):
post_req = RequestFactory().post('/', self.body, content_type=self.content_type)
view = BaseView()
view.request = post_req
- parsed = MultiPartParser(view).parse(StringIO(self.body))
- self.assertEqual(parsed['key1'], 'val1')
- self.assertEqual(parsed.FILES['file1'].read(), 'blablabla')
+ (data, files) = MultiPartParser(view).parse(StringIO(self.body))
+ self.assertEqual(data['key1'], 'val1')
+ self.assertEqual(files['file1'].read(), 'blablabla')