summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-12-20 11:14:23 +0000
committerChris McDonough <chrism@agendaless.com>2009-12-20 11:14:23 +0000
commiteee8fb4a6d28a2e84b313b5518914b0fe1ab043e (patch)
treec591ed279da5c5f6725c3c9cddffb0269c8968c2
parente9c88cab25de6e0024ff0207ac6f541756a43a27 (diff)
downloadpyramid-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.txt7
-rw-r--r--docs/api/configuration.rst4
-rw-r--r--repoze/bfg/configuration.py45
-rw-r--r--repoze/bfg/tests/test_configuration.py31
-rw-r--r--repoze/bfg/tests/test_zcml.py34
-rw-r--r--repoze/bfg/zcml.py28
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):