summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2015-02-11 00:23:42 -0600
committerMichael Merickel <michael@merickel.org>2015-02-11 00:23:42 -0600
commitb6e148dc678cad3bc63d64f41385114134e017be (patch)
tree4c4bdd4fb03344a317b11005bc1885e98671b58b
parent04f7542941149010f31d42ed729d6317ffa06239 (diff)
downloadpyramid-b6e148dc678cad3bc63d64f41385114134e017be.tar.gz
pyramid-b6e148dc678cad3bc63d64f41385114134e017be.tar.bz2
pyramid-b6e148dc678cad3bc63d64f41385114134e017be.zip
clone a new RendererHelper per request
-rw-r--r--pyramid/config/views.py3
-rw-r--r--pyramid/tests/test_config/test_views.py16
2 files changed, 18 insertions, 1 deletions
diff --git a/pyramid/config/views.py b/pyramid/config/views.py
index 1f69d7e0b..338021c24 100644
--- a/pyramid/config/views.py
+++ b/pyramid/config/views.py
@@ -348,7 +348,6 @@ class ViewDeriver(object):
def _rendered_view(self, view, view_renderer):
def rendered_view(context, request):
- renderer = view_renderer
result = view(context, request)
if result.__class__ is Response: # potential common case
response = result
@@ -366,6 +365,8 @@ class ViewDeriver(object):
name=renderer_name,
package=self.kw.get('package'),
registry = registry)
+ else:
+ renderer = view_renderer.clone()
if '__view__' in attrs:
view_inst = attrs.pop('__view__')
else:
diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py
index b0d03fb72..ed5426b12 100644
--- a/pyramid/tests/test_config/test_views.py
+++ b/pyramid/tests/test_config/test_views.py
@@ -2534,6 +2534,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst, view)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
def view(request):
return 'OK'
deriver = self._makeOne(renderer=moo())
@@ -2571,6 +2573,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst, 'view')
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
def view(request):
return 'OK'
deriver = self._makeOne(renderer=moo())
@@ -3165,6 +3169,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst.__class__, View)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
class View(object):
def __init__(self, context, request):
pass
@@ -3189,6 +3195,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst.__class__, View)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
class View(object):
def __init__(self, request):
pass
@@ -3213,6 +3221,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst.__class__, View)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
class View:
def __init__(self, context, request):
pass
@@ -3237,6 +3247,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst.__class__, View)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
class View:
def __init__(self, request):
pass
@@ -3261,6 +3273,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst, view)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
class View:
def index(self, context, request):
return {'a':'1'}
@@ -3283,6 +3297,8 @@ class TestViewDeriver(unittest.TestCase):
self.assertEqual(view_inst, view)
self.assertEqual(ctx, context)
return response
+ def clone(self):
+ return self
class View:
def index(self, request):
return {'a':'1'}