summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/renderers.py4
-rw-r--r--pyramid/tests/test_renderers.py25
2 files changed, 25 insertions, 4 deletions
diff --git a/pyramid/renderers.py b/pyramid/renderers.py
index 108255ee4..2addaa5fe 100644
--- a/pyramid/renderers.py
+++ b/pyramid/renderers.py
@@ -456,6 +456,10 @@ class RendererHelper(object):
if result is not None:
if isinstance(result, text_type):
response.text = result
+ elif isinstance(result, bytes):
+ response.body = result
+ elif hasattr(result, '__iter__'):
+ response.app_iter = result
else:
response.body = result
diff --git a/pyramid/tests/test_renderers.py b/pyramid/tests/test_renderers.py
index 2bddd2318..bb5b0455a 100644
--- a/pyramid/tests/test_renderers.py
+++ b/pyramid/tests/test_renderers.py
@@ -191,8 +191,8 @@ class TestRendererHelper(unittest.TestCase):
helper = self._makeOne('loo.foo')
response = helper.render_to_response('values', {},
request=request)
- self.assertEqual(response.body[0], 'values')
- self.assertEqual(response.body[1], {})
+ self.assertEqual(response.app_iter[0], 'values')
+ self.assertEqual(response.app_iter[1], {})
def test_get_renderer(self):
factory = self._registerRendererFactory()
@@ -209,8 +209,8 @@ class TestRendererHelper(unittest.TestCase):
request = testing.DummyRequest()
response = 'response'
response = helper.render_view(request, response, view, context)
- self.assertEqual(response.body[0], 'response')
- self.assertEqual(response.body[1],
+ self.assertEqual(response.app_iter[0], 'response')
+ self.assertEqual(response.app_iter[1],
{'renderer_info': helper,
'renderer_name': 'loo.foo',
'request': request,
@@ -287,6 +287,23 @@ class TestRendererHelper(unittest.TestCase):
response = helper._make_response(la.encode('utf-8'), request)
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()
+ helper = self._makeOne('loo.foo')
+ la = text_('/La Pe\xc3\xb1a', 'utf-8')
+ response = helper._make_response([la.encode('utf-8')], request)
+ self.assertEqual(response.body, la.encode('utf-8'))
+
+ def test__make_response_result_is_other(self):
+ self._registerResponseFactory()
+ request = None
+ helper = self._makeOne('loo.foo')
+ result = object()
+ response = helper._make_response(result, request)
+ self.assertEqual(response.body, result)
+
def test__make_response_result_is_None_no_body(self):
from pyramid.response import Response
request = testing.DummyRequest()