def __init__(self): self.registry = Components('Testing') self.old = getSiteManager.sethook(lambda: self.registry) self.instances.add(self) if not self.__class__.atexit_setup: atexit.register(self.atexit) self.__class__.atexit_setup = True
def registerHandler(self, *arg, **kw): result = Components.registerHandler(self, *arg, **kw) self.has_listeners = True return result
def registerSubscriptionAdapter(self, *arg, **kw): result = Components.registerSubscriptionAdapter(self, *arg, **kw) self.has_listeners = True return result
>>> from weblayer.settings import RequirableSettings >>> settings = RequirableSettings() >>> template_renderer = registry.getAdapter( ... settings, ... ITemplateRenderer ... ) Note how you register an adapter class and get an instance:: >>> MockTemplateRenderer.assert_called_with(settings) >>> template_renderer = 'mock_template_renderer' Tear down:: >>> registry.unregisterUtility(provided=IPathRouter) True >>> registry.unregisterAdapter( ... required=[ISettings], ... provided=ITemplateRenderer ... ) True .. _`zope.component.registry.Components`: http://pypi.python.org/pypi/zope.component#component-management-objects .. _`utilities`: http://pypi.python.org/pypi/zope.component#id6 .. _`adapters`: http://pypi.python.org/pypi/zope.component#id7 """ from zope.component.registry import Components registry = Components('weblayer')