diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-12-20 11:14:23 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-12-20 11:14:23 +0000 |
| commit | eee8fb4a6d28a2e84b313b5518914b0fe1ab043e (patch) | |
| tree | c591ed279da5c5f6725c3c9cddffb0269c8968c2 | |
| parent | e9c88cab25de6e0024ff0207ac6f541756a43a27 (diff) | |
| download | pyramid-eee8fb4a6d28a2e84b313b5518914b0fe1ab043e.tar.gz pyramid-eee8fb4a6d28a2e84b313b5518914b0fe1ab043e.tar.bz2 pyramid-eee8fb4a6d28a2e84b313b5518914b0fe1ab043e.zip | |
Get rid of add_adapter and add_utility APIs (config.registry.registerAdapter and config.registry.registerUtility will work).
| -rw-r--r-- | CHANGES.txt | 7 | ||||
| -rw-r--r-- | docs/api/configuration.rst | 4 | ||||
| -rw-r--r-- | repoze/bfg/configuration.py | 45 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_configuration.py | 31 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 34 | ||||
| -rw-r--r-- | repoze/bfg/zcml.py | 28 |
6 files changed, 34 insertions, 115 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 09f306c9d..2d0cadd1b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -22,13 +22,6 @@ Features ``repoze.bfg.settings.get_settings`` API) after the configurator has been initially set up. This is most useful for testing purposes. -- Add two new APIs to the ``repoze.bfg.configuration.Configurator`` - class: ``add_adapter`` and ``add_utility``. These, respectively, - perform the same functions as the ``registerAdapter`` and - ``registerUtility`` functions of the configurator's underlying ZCA - registry. They were added to allow for a more consistent testing - API for applications that make use of the ZCA directly. - - Add a ``custom_predicates`` argument to the ``Configurator`` ``add_view`` method, the ``bfg_view`` decorator and the attribute list of the ZCML ``view`` directive. If ``custom_predicates`` is diff --git a/docs/api/configuration.rst b/docs/api/configuration.rst index 95f3a7a4c..d90e75504 100644 --- a/docs/api/configuration.rst +++ b/docs/api/configuration.rst @@ -11,8 +11,6 @@ .. automethod:: end - .. automethod:: add_adapter - .. automethod:: add_renderer(name, factory) .. automethod:: add_route @@ -23,8 +21,6 @@ .. automethod:: add_subscriber - .. automethod:: add_utility - .. automethod:: add_view .. automethod:: load_zcml(spec) diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py index ccfeb7347..8663a0567 100644 --- a/repoze/bfg/configuration.py +++ b/repoze/bfg/configuration.py @@ -323,51 +323,6 @@ class Configurator(object): utility = self._set_settings(settings) utility.update(settings) - def add_subscription_adapter(self, factory, required=None, provided=None, - info=u''): - """Add a Zope Component Architecture subscription adapter. - What is a subscription adapter, you ask? I have no idea - either. This is currently only here to support the - ``subscriber`` ZCML directive. This is not a published API - until I figure out why I would need a subscription adapter.""" - self.registry.registerSubscriptionAdapter(factory, required=required, - provided=provided, info=info) - - def add_adapter(self, factory, required=None, provided=None, name='', - info=u''): - """Add a :term:`Zope Component Architecture` adapter. Use of - this method is the equivalent of using an ``adapter`` - :term:`ZCML declaration` or the ``registerAdapter`` method of - a ZCA registry. - - .. note:: This method is not useful unless you use :term:`Zope - Component Architecture` APIs in your :mod:`repoze.bfg` - application directly. - """ - self.registry.registerAdapter(factory, required=required, - provided=provided, name=name, info=info) - - def add_utility(self, component=None, provided=None, name=u'', info=u'', - factory=None): - """Add a :term:`Zope Component Architecture` utility. Use of - this method is the equivalent of using a ``utility`` - :term:`ZCML declaration` or the ``registerUtility`` method of - a ZCA registry. - - .. note:: This method is not useful unless you use :term:`Zope - Component Architecture` APIs in your :mod:`repoze.bfg` - application directly. - """ - if factory: - kw = dict(factory=factory) - else: - # older component registries don't accept factory as a kwarg, - # so if we don't need it, we don't pass it - kw = {} - self.registry.registerUtility( - component=component, provided=provided, name=name, info=info, - **kw) - def make_wsgi_app(self): """ Returns a :mod:`repoze.bfg` WSGI application representing the current configuration state and sends a diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py index a303f550f..3b7c50f60 100644 --- a/repoze/bfg/tests/test_configuration.py +++ b/repoze/bfg/tests/test_configuration.py @@ -1833,37 +1833,6 @@ class ConfiguratorTests(unittest.TestCase): result = render_view_to_response(ctx, req, 'pod_notinit') self.assertEqual(result, None) - def test_add_subscription_adapter(self): - config = self._makeOne() - def factory(abc): pass - config.add_subscription_adapter(factory, (IDummy,), IDummy, - info='info') - adapters = config.registry.registeredSubscriptionAdapters() - self.assertEqual(list(adapters)[0].factory, factory) - - def test_add_adapter(self): - config = self._makeOne() - def factory(abc): return 'OK' - config.add_adapter(factory, (IDummy,), IDummy, name='foo', - info='info') - result = config.registry.adapters.lookup((IDummy,), IDummy, name='foo') - self.assertEqual(result(None), 'OK') - - def test_add_utility_no_factory(self): - config = self._makeOne() - def component(): pass - config.add_utility(component, IDummy, name='foo', info='info') - result = config.registry.queryUtility(IDummy, name='foo') - self.assertEqual(result, component) - - def test_add_utility_with_factory(self): - config = self._makeOne() - def factory(): return 'OK' - config.add_utility(None, IDummy, name='foo', info='info', - factory=factory) - result = config.registry.queryUtility(IDummy, name='foo') - self.assertEqual(result, 'OK') - def test_testing_securitypolicy(self): from repoze.bfg.testing import DummySecurityPolicy config = self._makeOne() diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 59254846f..b50f841c2 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -724,7 +724,7 @@ class TestAdapterDirective(unittest.TestCase): provides=None, for_=None) def test_for_is_None_adaptedBy_set(self): - from repoze.bfg.configuration import Configurator + from repoze.bfg.registry import Registry context = DummyContext() factory = DummyFactory() factory.__component_adapts__ = (IDummy,) @@ -734,7 +734,7 @@ class TestAdapterDirective(unittest.TestCase): self.assertEqual(regadapt['discriminator'], ('adapter', (IDummy,), IFactory, '')) self.assertEqual(regadapt['callable'].im_func, - Configurator.add_adapter.im_func) + Registry.registerAdapter.im_func) self.assertEqual(regadapt['args'], (factory, (IDummy,), IFactory, '', None)) @@ -745,14 +745,14 @@ class TestAdapterDirective(unittest.TestCase): provides=None, for_=(IDummy,)) def test_provides_obtained_via_implementedBy(self): - from repoze.bfg.configuration import Configurator + from repoze.bfg.registry import Registry context = DummyContext() self._callFUT(context, [DummyFactory], for_=(IDummy,)) regadapt = context.actions[0] self.assertEqual(regadapt['discriminator'], ('adapter', (IDummy,), IFactory, '')) self.assertEqual(regadapt['callable'].im_func, - Configurator.add_adapter.im_func) + Registry.registerAdapter.im_func) self.assertEqual(regadapt['args'], (DummyFactory, (IDummy,), IFactory, '', None)) @@ -772,7 +772,7 @@ class TestAdapterDirective(unittest.TestCase): for_=(IDummy, IDummy)) def test_rolled_up_factories(self): - from repoze.bfg.configuration import Configurator + from repoze.bfg.registry import Registry context = DummyContext() factory = DummyFactory() self._callFUT(context, @@ -783,7 +783,7 @@ class TestAdapterDirective(unittest.TestCase): self.assertEqual(regadapt['discriminator'], ('adapter', (IDummy,), IFactory, '')) self.assertEqual(regadapt['callable'].im_func, - Configurator.add_adapter.im_func) + Registry.registerAdapter.im_func) self.assertEqual(regadapt['args'][0].__module__, 'repoze.bfg.zcml') class TestSubscriberDirective(unittest.TestCase): @@ -830,7 +830,7 @@ class TestSubscriberDirective(unittest.TestCase): factory=factory, handler=None, provides=IFactory) def test_register_with_factory(self): - from repoze.bfg.configuration import Configurator + from repoze.bfg.registry import Registry context = DummyContext() factory = DummyFactory() self._callFUT(context, for_=(IDummy,), @@ -839,9 +839,9 @@ class TestSubscriberDirective(unittest.TestCase): subadapt = context.actions[0] self.assertEqual(subadapt['discriminator'], None) self.assertEqual(subadapt['callable'].im_func, - Configurator.add_subscription_adapter.im_func) + Registry.registerSubscriptionAdapter.im_func) self.assertEqual(subadapt['args'], - (factory, (IDummy,), IFactory, None) ) + (factory, (IDummy,), IFactory, None, None) ) def test_register_with_handler(self): from repoze.bfg.configuration import Configurator @@ -877,19 +877,19 @@ class TestUtilityDirective(unittest.TestCase): self.assertRaises(TypeError, self._callFUT, context, provides=None) def test_provides_from_factory_implements(self): - from repoze.bfg.configuration import Configurator + from repoze.bfg.registry import Registry context = DummyContext() self._callFUT(context, factory=DummyFactory) self.assertEqual(len(context.actions), 1) utility = context.actions[0] self.assertEqual(utility['discriminator'], ('utility', IFactory, '')) self.assertEqual(utility['callable'].im_func, - Configurator.add_utility.im_func) - self.assertEqual(utility['args'], - (None, IFactory, '', None, DummyFactory)) + Registry.registerUtility.im_func) + self.assertEqual(utility['args'], (None, IFactory, '', None)) + self.assertEqual(utility['kw'], {'factory':DummyFactory}) def test_provides_from_component_provides(self): - from repoze.bfg.configuration import Configurator + from repoze.bfg.registry import Registry context = DummyContext() component = DummyFactory() self._callFUT(context, component=component) @@ -897,9 +897,9 @@ class TestUtilityDirective(unittest.TestCase): utility = context.actions[0] self.assertEqual(utility['discriminator'], ('utility', IFactory, '')) self.assertEqual(utility['callable'].im_func, - Configurator.add_utility.im_func) - self.assertEqual(utility['args'], - (component, IFactory, '', None, None)) + Registry.registerUtility.im_func) + self.assertEqual(utility['args'], (component, IFactory, '', None)) + self.assertEqual(utility['kw'], {}) class TestLoadZCML(unittest.TestCase): def setUp(self): diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index 90f863fb3..6467907db 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -612,11 +612,10 @@ def adapter(_context, factory, provides=None, for_=None, name=''): else: factory = _rolledUpFactory(factories) - reg = get_current_registry() - config = Configurator(reg, package=_context.package) + registry = get_current_registry() _context.action( discriminator = ('adapter', for_, provides, name), - callable = config.add_adapter, + callable = registry.registerAdapter, args = (factory, for_, provides, name, _context.info), ) @@ -676,8 +675,8 @@ def subscriber(_context, for_=None, factory=None, handler=None, provides=None): for_ = tuple(for_) - reg = get_current_registry() - config = Configurator(reg, _context.package) + registry = get_current_registry() + config = Configurator(registry=registry, package=_context.package) if handler is not None: _context.action( @@ -688,8 +687,8 @@ def subscriber(_context, for_=None, factory=None, handler=None, provides=None): else: _context.action( discriminator = None, - callable = config.add_subscription_adapter, - args = (factory, for_, provides, _context.info), + callable = registry.registerSubscriptionAdapter, + args = (factory, for_, provides, None, _context.info), ) class IUtilityDirective(Interface): @@ -741,12 +740,19 @@ def utility(_context, provides=None, component=None, factory=None, name=''): else: raise TypeError("Missing 'provides' attribute") - reg = get_current_registry() - config = Configurator(reg, package=_context.package) + if factory: + kw = dict(factory=factory) + else: + # older component registries don't accept factory as a kwarg, + # so if we don't need it, we don't pass it + kw = {} + + registry = get_current_registry() _context.action( discriminator = ('utility', provides, name), - callable = config.add_utility, - args = (component, provides, name, _context.info, factory), + callable = registry.registerUtility, + args = (component, provides, name, _context.info), + kw = kw, ) def path_spec(context, path): |
