diff options
| author | Chris McDonough <chrism@plope.com> | 2011-08-06 18:13:52 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2011-08-06 18:13:52 -0400 |
| commit | 3e15222b7d92e55f1c53ee252d3bebf25944e216 (patch) | |
| tree | 342a729fe8890b5d7dd7409fe4469cfc20ac678d | |
| parent | feabd37caa3f860b550da904165ccb17252f2bf7 (diff) | |
| download | pyramid-3e15222b7d92e55f1c53ee252d3bebf25944e216.tar.gz pyramid-3e15222b7d92e55f1c53ee252d3bebf25944e216.tar.bz2 pyramid-3e15222b7d92e55f1c53ee252d3bebf25944e216.zip | |
test Tweens
| -rw-r--r-- | pyramid/config.py | 9 | ||||
| -rw-r--r-- | pyramid/tests/test_config.py | 65 |
2 files changed, 68 insertions, 6 deletions
diff --git a/pyramid/config.py b/pyramid/config.py index 9136c0880..db5e5f945 100644 --- a/pyramid/config.py +++ b/pyramid/config.py @@ -1003,10 +1003,6 @@ class Configurator(object): """ return self._add_tween(tween_factory, explicit=False) - # XXX temporary bw compat for debugtoolbar - def add_request_handler(self, factory, name): - return self._add_tween(factory, explicit=False) - def _add_tween(self, tween_factory, explicit): tween_factory = self.maybe_dotted(tween_factory) if (hasattr(tween_factory, '__name__') and @@ -1029,6 +1025,11 @@ class Configurator(object): handler_manager.add(name, tween_factory, explicit) self.action(('tween', name), register) + # XXX temporary bw compat for debugtoolbar + @action_method + def add_request_handler(self, factory, name): # pragma: no cover + return self._add_tween(factory, explicit=False) + @action_method def add_subscriber(self, subscriber, iface=None): """Add an event :term:`subscriber` for the event stream diff --git a/pyramid/tests/test_config.py b/pyramid/tests/test_config.py index 0761498fb..8b11bb22a 100644 --- a/pyramid/tests/test_config.py +++ b/pyramid/tests/test_config.py @@ -659,6 +659,29 @@ pyramid.tests.test_config.dummy_include2""", dummy_tween_factory) ]) + def test_add_tween_instance(self): + from pyramid.interfaces import ITweens + from pyramid.router import excview_tween_factory + class ATween(object): pass + atween = ATween() + config = self._makeOne() + config.add_tween(atween) + config.commit() + tweens = config.registry.queryUtility(ITweens) + self.assertEqual(len(tweens.implicit), 2) + self.assertEqual( + tweens.implicit[0], + ('pyramid.router.excview_tween_factory', excview_tween_factory)) + self.assertTrue( + tweens.implicit[1][0].startswith('pyramid.tests.test_config.ATween.')) + self.assertEqual(tweens.implicit[1][1], atween) + + def test_add_tween_unsuitable(self): + from pyramid.exceptions import ConfigurationError + import pyramid.tests + config = self._makeOne() + self.assertRaises(ConfigurationError, config.add_tween, pyramid.tests) + def test_add_tweens_conflict(self): from zope.configuration.config import ConfigurationConflictError config = self._makeOne() @@ -5488,6 +5511,45 @@ class Test_isexception(unittest.TestCase): pass self.assertEqual(self._callFUT(ISubException), True) +class TestTweens(unittest.TestCase): + def _makeOne(self): + from pyramid.config import Tweens + return Tweens() + + def test_add_explicit(self): + tweens = self._makeOne() + tweens.add('name', 'factory', explicit=True) + self.assertEqual(tweens.explicit, [('name', 'factory')]) + tweens.add('name2', 'factory2', explicit=True) + self.assertEqual(tweens.explicit, [('name', 'factory'), + ('name2', 'factory2')]) + + def test_add_implicit(self): + tweens = self._makeOne() + tweens.add('name', 'factory', explicit=False) + self.assertEqual(tweens.implicit, [('name', 'factory')]) + tweens.add('name2', 'factory2', explicit=False) + self.assertEqual(tweens.implicit, [('name', 'factory'), + ('name2', 'factory2')]) + + def test___call___explicit(self): + tweens = self._makeOne() + def factory1(handler, registry): + return handler + def factory2(handler, registry): + return '123' + tweens.explicit = [('name', factory1), ('name', factory2)] + self.assertEqual(tweens(None, None), '123') + + def test___call___implicit(self): + tweens = self._makeOne() + def factory1(handler, registry): + return handler + def factory2(handler, registry): + return '123' + tweens.implicit = [('name', factory1), ('name', factory2)] + self.assertEqual(tweens(None, None), '123') + class DummyRequest: subpath = () matchdict = None @@ -5674,5 +5736,4 @@ from pyramid.interfaces import IResponse class DummyResponse(object): implements(IResponse) -def dummy_tween_factory(handler, registry): - pass +def dummy_tween_factory(handler, registry): pass |
