Commit ecd3733c by Tom Christie

Added serializers and fields

parent 9ea12d14
......@@ -57,7 +57,7 @@ class BaseParser(object):
"""
return media_type_matches(self.media_type, content_type)
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Given a *stream* to read from, return the deserialized output.
Should return a 2-tuple of (data, files).
......@@ -72,7 +72,7 @@ class JSONParser(BaseParser):
media_type = 'application/json'
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Returns a 2-tuple of `(data, files)`.
......@@ -92,7 +92,7 @@ class YAMLParser(BaseParser):
media_type = 'application/yaml'
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Returns a 2-tuple of `(data, files)`.
......@@ -112,7 +112,7 @@ class PlainTextParser(BaseParser):
media_type = 'text/plain'
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Returns a 2-tuple of `(data, files)`.
......@@ -129,7 +129,7 @@ class FormParser(BaseParser):
media_type = 'application/x-www-form-urlencoded'
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Returns a 2-tuple of `(data, files)`.
......@@ -147,13 +147,15 @@ class MultiPartParser(BaseParser):
media_type = 'multipart/form-data'
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Returns a 2-tuple of `(data, files)`.
`data` will be a :class:`QueryDict` containing all the form parameters.
`files` will be a :class:`QueryDict` containing all the form files.
"""
meta = opts['meta']
upload_handlers = opts['upload_handlers']
try:
parser = DjangoMultiPartParser(meta, stream, upload_handlers)
return parser.parse()
......@@ -168,7 +170,7 @@ class XMLParser(BaseParser):
media_type = 'application/xml'
def parse(self, stream, meta, upload_handlers):
def parse(self, stream, **opts):
"""
Returns a 2-tuple of `(data, files)`.
......
......@@ -214,7 +214,8 @@ class Request(object):
for parser in self.get_parsers():
if parser.can_handle_request(self.content_type):
return parser.parse(self.stream, self.META, self.upload_handlers)
return parser.parse(self.stream, meta=self.META,
upload_handlers=self.upload_handlers)
raise UnsupportedMediaType(self._content_type)
......
......@@ -153,7 +153,7 @@ class TestFormParser(TestCase):
parser = FormParser()
stream = StringIO(self.string)
(data, files) = parser.parse(stream, {}, [])
(data, files) = parser.parse(stream)
self.assertEqual(Form(data).is_valid(), True)
......@@ -203,10 +203,10 @@ class TestXMLParser(TestCase):
def test_parse(self):
parser = XMLParser()
(data, files) = parser.parse(self._input, {}, [])
(data, files) = parser.parse(self._input)
self.assertEqual(data, self._data)
def test_complex_data_parse(self):
parser = XMLParser()
(data, files) = parser.parse(self._complex_data_input, {}, [])
(data, files) = parser.parse(self._complex_data_input)
self.assertEqual(data, self._complex_data)
......@@ -380,7 +380,7 @@ class XMLRendererTestCase(TestCase):
content = StringIO(renderer.render(self._complex_data, 'application/xml'))
parser = XMLParser()
complex_data_out, dummy = parser.parse(content, {}, [])
complex_data_out, dummy = parser.parse(content)
error_msg = "complex data differs!IN:\n %s \n\n OUT:\n %s" % (repr(self._complex_data), repr(complex_data_out))
self.assertEqual(self._complex_data, complex_data_out, error_msg)
......
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