diff options
| author | Michael Merickel <michael@merickel.org> | 2012-04-12 21:35:43 -0500 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2012-04-12 21:35:43 -0500 |
| commit | b940e4f6f064a4b96ba1119d2fd349b63bfb77a3 (patch) | |
| tree | e99a25edd4f4e96ef8c1c65e27f7996ad5eb15bf | |
| parent | d7f34bdaefb855d811a78dfdf813b4e0d9268d8c (diff) | |
| download | pyramid-b940e4f6f064a4b96ba1119d2fd349b63bfb77a3.tar.gz pyramid-b940e4f6f064a4b96ba1119d2fd349b63bfb77a3.tar.bz2 pyramid-b940e4f6f064a4b96ba1119d2fd349b63bfb77a3.zip | |
fixed coverage for request properties
| -rw-r--r-- | pyramid/config/factories.py | 13 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_factories.py | 38 |
2 files changed, 27 insertions, 24 deletions
diff --git a/pyramid/config/factories.py b/pyramid/config/factories.py index 6c4f00784..6f069b3d9 100644 --- a/pyramid/config/factories.py +++ b/pyramid/config/factories.py @@ -1,5 +1,6 @@ from zope.interface import implementer +from pyramid.compat import iteritems_ from pyramid.config.util import action_method from pyramid.interfaces import ( @@ -98,8 +99,8 @@ class FactoriesConfiguratorMixin(object): def set_request_method(self, callable=None, name=None, - property=None, - reify=None): + property=False, + reify=False): """ Add a property or method to the request object. When adding a method to the request, ``callable`` may be any @@ -156,7 +157,7 @@ class FactoriesConfiguratorMixin(object): (INewRequest,)) plist = exts.descriptors if property else exts.methods - plist.append((name, callable)) + plist[name] = callable if callable is None: self.action(('request extensions', name), None) @@ -195,12 +196,12 @@ class FactoriesConfiguratorMixin(object): @implementer(IRequestExtensions) class _RequestExtensions(object): def __init__(self): - self.descriptors = [] - self.methods = [] + self.descriptors = {} + self.methods = {} def _set_request_extensions(event): request = event.request exts = request.registry.queryUtility(IRequestExtensions) - for name, method in exts.methods: + for name, method in iteritems_(exts.methods): setattr(request, name, method) request._set_properties(exts.descriptors) diff --git a/pyramid/tests/test_config/test_factories.py b/pyramid/tests/test_config/test_factories.py index 1dfeda34c..596f9796d 100644 --- a/pyramid/tests/test_config/test_factories.py +++ b/pyramid/tests/test_config/test_factories.py @@ -68,39 +68,40 @@ class TestFactoriesMixin(unittest.TestCase): dummyfactory) def test_set_request_property_with_callable(self): - from pyramid.interfaces import IRequestProperties + from pyramid.interfaces import IRequestExtensions config = self._makeOne(autocommit=True) callable = lambda x: None config.set_request_property(callable, name='foo') - plist = config.registry.getUtility(IRequestProperties) - self.assertEqual(set(p[0] for p in plist), set(['foo'])) + exts = config.registry.getUtility(IRequestExtensions) + self.assertTrue('foo' in exts.descriptors) def test_set_request_property_with_unnamed_callable(self): - from pyramid.interfaces import IRequestProperties + from pyramid.interfaces import IRequestExtensions config = self._makeOne(autocommit=True) def foo(self): pass config.set_request_property(foo, reify=True) - plist = config.registry.getUtility(IRequestProperties) - self.assertEqual(set(p[0] for p in plist), set(['foo'])) + exts = config.registry.getUtility(IRequestExtensions) + self.assertTrue('foo' in exts.descriptors) def test_set_request_property_with_property(self): - from pyramid.interfaces import IRequestProperties + from pyramid.interfaces import IRequestExtensions config = self._makeOne(autocommit=True) callable = property(lambda x: None) config.set_request_property(callable, name='foo') - plist = config.registry.getUtility(IRequestProperties) - self.assertEqual(set(p[0] for p in plist), set(['foo'])) + exts = config.registry.getUtility(IRequestExtensions) + self.assertTrue('foo' in exts.descriptors) def test_set_multiple_request_properties(self): - from pyramid.interfaces import IRequestProperties + from pyramid.interfaces import IRequestExtensions config = self._makeOne() def foo(self): pass bar = property(lambda x: None) config.set_request_property(foo, reify=True) config.set_request_property(bar, name='bar') config.commit() - plist = config.registry.getUtility(IRequestProperties) - self.assertEqual(set(p[0] for p in plist), set(['foo', 'bar'])) + exts = config.registry.getUtility(IRequestExtensions) + self.assertTrue('foo' in exts.descriptors) + self.assertTrue('bar' in exts.descriptors) def test_set_multiple_request_properties_conflict(self): from pyramid.exceptions import ConfigurationConflictError @@ -124,19 +125,20 @@ class TestFactoriesMixin(unittest.TestCase): request = DummyRequest(config.registry) event = Event() config.registry.notify(event) - plist = event.request.plist - self.assertEqual(set(p[0] for p in plist), set(['foo', 'bar'])) + exts = event.request.extensions + self.assertTrue('foo' in exts[0]) + self.assertTrue('bar' in exts[1]) class DummyRequest(object): - plist = None + extensions = None def __init__(self, registry): self.registry = registry def _set_properties(self, properties): - if self.plist is None: - self.plist = [] - self.plist.extend(properties) + if self.extensions is None: + self.extensions = [] + self.extensions.extend(properties) |
