summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2016-09-04 16:17:52 -0500
committerMichael Merickel <michael@merickel.org>2016-09-04 18:49:31 -0500
commit35b0e34db3fb15d8e1eef10473df86abb9b90ad8 (patch)
tree18e6a72676aa12ba0cd59fcb2826702ff72844ca
parentdf0e20f3440bcf039f6d40822a1280efa26bfc87 (diff)
downloadpyramid-35b0e34db3fb15d8e1eef10473df86abb9b90ad8.tar.gz
pyramid-35b0e34db3fb15d8e1eef10473df86abb9b90ad8.tar.bz2
pyramid-35b0e34db3fb15d8e1eef10473df86abb9b90ad8.zip
refactor tween initialization to occur at config-time
previously the EXCVIEW tween was only created in the router OR when another tween is added. Now the EXCVIEW tween is just added at startup similar to how view derivers and many other things operate.
-rw-r--r--pyramid/config/__init__.py1
-rw-r--r--pyramid/config/tweens.py15
-rw-r--r--pyramid/router.py9
-rw-r--r--pyramid/testing.py1
4 files changed, 8 insertions, 18 deletions
diff --git a/pyramid/config/__init__.py b/pyramid/config/__init__.py
index 958526386..d4064dc78 100644
--- a/pyramid/config/__init__.py
+++ b/pyramid/config/__init__.py
@@ -379,6 +379,7 @@ class Configurator(
self.add_default_view_predicates()
self.add_default_view_derivers()
self.add_default_route_predicates()
+ self.add_default_tweens()
if exceptionresponse_view is not None:
exceptionresponse_view = self.maybe_dotted(exceptionresponse_view)
diff --git a/pyramid/config/tweens.py b/pyramid/config/tweens.py
index 8e1800f33..0aeb01fe3 100644
--- a/pyramid/config/tweens.py
+++ b/pyramid/config/tweens.py
@@ -10,7 +10,6 @@ from pyramid.compat import (
from pyramid.exceptions import ConfigurationError
from pyramid.tweens import (
- excview_tween_factory,
MAIN,
INGRESS,
EXCVIEW,
@@ -107,6 +106,9 @@ class TweensConfiguratorMixin(object):
return self._add_tween(tween_factory, under=under, over=over,
explicit=False)
+ def add_default_tweens(self):
+ self.add_tween(EXCVIEW)
+
@action_method
def _add_tween(self, tween_factory, under=None, over=None, explicit=False):
@@ -142,17 +144,6 @@ class TweensConfiguratorMixin(object):
if tweens is None:
tweens = Tweens()
registry.registerUtility(tweens, ITweens)
- ex_intr = self.introspectable('tweens',
- ('tween', EXCVIEW, False),
- EXCVIEW,
- 'implicit tween')
- ex_intr['name'] = EXCVIEW
- ex_intr['factory'] = excview_tween_factory
- ex_intr['type'] = 'implicit'
- ex_intr['under'] = None
- ex_intr['over'] = MAIN
- introspectables.append(ex_intr)
- tweens.add_implicit(EXCVIEW, excview_tween_factory, over=MAIN)
def register():
if explicit:
diff --git a/pyramid/router.py b/pyramid/router.py
index 19773cf62..fd11925e9 100644
--- a/pyramid/router.py
+++ b/pyramid/router.py
@@ -34,8 +34,6 @@ from pyramid.traversal import (
ResourceTreeTraverser,
)
-from pyramid.tweens import excview_tween_factory
-
@implementer(IRouter)
class Router(object):
@@ -51,11 +49,10 @@ class Router(object):
self.routes_mapper = q(IRoutesMapper)
self.request_factory = q(IRequestFactory, default=Request)
self.request_extensions = q(IRequestExtensions)
- tweens = q(ITweens)
- if tweens is None:
- tweens = excview_tween_factory
self.orig_handle_request = self.handle_request
- self.handle_request = tweens(self.handle_request, registry)
+ tweens = q(ITweens)
+ if tweens is not None:
+ self.handle_request = tweens(self.handle_request, registry)
self.root_policy = self.root_factory # b/w compat
self.registry = registry
settings = registry.settings
diff --git a/pyramid/testing.py b/pyramid/testing.py
index ec06fe379..877b351db 100644
--- a/pyramid/testing.py
+++ b/pyramid/testing.py
@@ -478,6 +478,7 @@ def setUp(registry=None, request=None, hook_zca=True, autocommit=True,
config.add_default_view_predicates()
config.add_default_view_derivers()
config.add_default_route_predicates()
+ config.add_default_tweens()
config.commit()
global have_zca
try: