| | |
| | | def test_it(self): |
| | | renderer = self._makeOne()(None) |
| | | result = renderer({'a':1}, {}) |
| | | self.assertEqual(result, b'{"a": 1}') |
| | | self.assertEqual(result, '{"a": 1}') |
| | | |
| | | def test_with_request_content_type_notset(self): |
| | | request = testing.DummyRequest() |
| | |
| | | renderer = self._makeOne() |
| | | renderer.add_adapter(datetime, adapter) |
| | | result = renderer(None)({'a':now}, {'request':request}) |
| | | self.assertEqual(result, '{{"a": "{0}"}}'.format(now.isoformat()).encode('UTF-8')) |
| | | self.assertEqual(result, '{"a": "%s"}' % now.isoformat()) |
| | | |
| | | def test_with_custom_adapter2(self): |
| | | request = testing.DummyRequest() |
| | |
| | | now = datetime.utcnow() |
| | | renderer = self._makeOne(adapters=((datetime, adapter),)) |
| | | result = renderer(None)({'a':now}, {'request':request}) |
| | | self.assertEqual(result, '{{"a": "{0}"}}'.format(now.isoformat()).encode('UTF-8')) |
| | | self.assertEqual(result, '{"a": "%s"}' % now.isoformat()) |
| | | |
| | | def test_with_custom_serializer(self): |
| | | class Serializer(object): |
| | |
| | | renderer = self._makeOne(serializer=serializer, baz=5) |
| | | obj = {'a':'b'} |
| | | result = renderer(None)(obj, {}) |
| | | self.assertEqual(result, b'foo') |
| | | self.assertEqual(result, 'foo') |
| | | self.assertEqual(serializer.obj, obj) |
| | | self.assertEqual(serializer.kw['baz'], 5) |
| | | self.assertTrue('default' in serializer.kw) |
| | |
| | | objects = [MyObject(1), MyObject(2)] |
| | | renderer = self._makeOne()(None) |
| | | result = renderer(objects, {'request':request}) |
| | | self.assertEqual(result, b'[{"x": 1}, {"x": 2}]') |
| | | self.assertEqual(result, '[{"x": 1}, {"x": 2}]') |
| | | |
| | | def test_with_object_adapter_no___json__(self): |
| | | class MyObject(object): |
| | |
| | | response = helper._make_response(la.encode('utf-8'), request) |
| | | self.assertEqual(response.body, la.encode('utf-8')) |
| | | |
| | | def test__make_response_result_is_str_no_charset(self): |
| | | from pyramid.response import Response |
| | | request = testing.DummyRequest() |
| | | request.response = Response(content_type='application/json', charset=None) |
| | | |
| | | self.assertIsNone(request.response.charset) |
| | | |
| | | helper = self._makeOne('loo.foo') |
| | | la = text_('/La Pe\xc3\xb1a', 'utf-8') |
| | | response = helper._make_response(la, request) |
| | | self.assertIsNone(response.charset) |
| | | self.assertEqual(response.body, la.encode('utf-8')) |
| | | |
| | | def test__make_response_result_is_iterable(self): |
| | | from pyramid.response import Response |
| | | request = testing.DummyRequest() |
| | |
| | | request.response = response |
| | | # use a json renderer, which will mutate the response |
| | | result = self._callFUT('json', dict(a=1), request=request) |
| | | self.assertEqual(result, b'{"a": 1}') |
| | | self.assertEqual(result, '{"a": 1}') |
| | | self.assertEqual(request.response, response) |
| | | |
| | | def test_no_response_to_preserve(self): |
| | |
| | | request = DummyRequestWithClassResponse() |
| | | # use a json renderer, which will mutate the response |
| | | result = self._callFUT('json', dict(a=1), request=request) |
| | | self.assertEqual(result, b'{"a": 1}') |
| | | self.assertEqual(result, '{"a": 1}') |
| | | self.assertFalse('response' in request.__dict__) |
| | | |
| | | class Test_render_to_response(unittest.TestCase): |
| | |
| | | request = testing.DummyRequest() |
| | | request.GET['callback'] = 'callback' |
| | | result = renderer({'a':'1'}, {'request':request}) |
| | | self.assertEqual(result, b'/**/callback({"a": "1"});') |
| | | self.assertEqual(result, '/**/callback({"a": "1"});') |
| | | self.assertEqual(request.response.content_type, |
| | | 'application/javascript') |
| | | |
| | |
| | | request = testing.DummyRequest() |
| | | request.GET['callback'] = 'angular.callbacks._0' |
| | | result = renderer({'a':'1'}, {'request':request}) |
| | | self.assertEqual(result, b'/**/angular.callbacks._0({"a": "1"});') |
| | | self.assertEqual(result, '/**/angular.callbacks._0({"a": "1"});') |
| | | self.assertEqual(request.response.content_type, |
| | | 'application/javascript') |
| | | |