class TestParser(unittest.TestCase): def setUp(self): from drf_to_s3.parsers import NestedFormParser self.parser = NestedFormParser() def test_form_parser_unflattens(self): flattened = { 'user[name]': 'Foobar', 'user[email]': '*****@*****.**', } stream = BytesIO(urllib.urlencode(flattened)) result = self.parser.parse(stream, 'application/x-www-form-urlencoded', {}) expected = { 'user': { 'name': 'Foobar', 'email': '*****@*****.**', } } self.assertEquals(result, expected) def test_form_parser_with_unicode(self): flattened = { 'name': u'\u6211', 'email': '*****@*****.**', } flattened = {k: v.encode('utf-8') for k, v in flattened.iteritems()} stream = BytesIO(urllib.urlencode(flattened)) result = self.parser.parse(stream, 'application/x-www-form-urlencoded', {'encoding': 'utf-8'}) expected = { 'name': u'\u6211', 'email': '*****@*****.**', } self.assertEquals(result, expected) def test_form_parser_with_ampersand(self): flattened = { 'name': u'Tom & Jerry', 'email': '*****@*****.**', } flattened = {k: v.encode('utf-8') for k, v in flattened.iteritems()} stream = BytesIO(urllib.urlencode(flattened)) result = self.parser.parse(stream, 'application/x-www-form-urlencoded', {'encoding': 'utf-8'}) expected = { 'name': u'Tom & Jerry', 'email': '*****@*****.**', } self.assertEquals(result, expected)
class TestParser(unittest.TestCase): def setUp(self): from drf_to_s3.parsers import NestedFormParser self.parser = NestedFormParser() def test_form_parser_unflattens(self): flattened = { 'user[name]': 'Foobar', 'user[email]': '*****@*****.**', } stream = BytesIO(urllib.urlencode(flattened)) result = self.parser.parse(stream, 'application/x-www-form-urlencoded', {}) expected = { 'user': { 'name': 'Foobar', 'email': '*****@*****.**', } } self.assertEquals(result, expected)