def setUp(self): from zope.component import getSiteManager from zope.component.registry import Components registry = Components() def get_registry(context=None): return registry getSiteManager.sethook(get_registry)
def load_zcml(self, zcml_asset_specification): def _get_site_manager(context=None): return self if ':' not in zcml_asset_specification: import alpaca config_package = alpaca config_file = zcml_asset_specification else: package_name, config_file = zcml_asset_specification.split(':') __import__(package_name) config_package = sys.modules[package_name] context = ConfigurationMachine() context.package = config_package xmlconfig.registerCommonDirectives(context) xmlconfig.file( config_file, package=config_package, context=context, execute=False ) getSiteManager.sethook(_get_site_manager) try: context.execute_actions() finally: getSiteManager.reset()
def uninstall(self): """ Remove the sterile registry and replace it with the one that was in place before this :class:`TestComponents` was instantiated. """ getSiteManager.sethook(self.old) self.instances.remove(self)
def hook_zca(self): """ Call :func:`zope.component.getSiteManager.sethook` with the argument :data:`pyramid.threadlocal.get_current_registry`, causing the :term:`Zope Component Architecture` 'global' APIs such as :func:`zope.component.getSiteManager`, :func:`zope.component.getAdapter` and others to use the :app:`Pyramid` :term:`application registry` rather than the Zope 'global' registry.""" getSiteManager.sethook(get_current_registry)
def hook_zca(self): """ Call :func:`zope.component.getSiteManager.sethook` with the argument :data:`pyramid.threadlocal.get_current_registry`, causing the :term:`Zope Component Architecture` 'global' APIs such as :func:`zope.component.getSiteManager`, :func:`zope.component.getAdapter` and others to use the :app:`Pyramid` :term:`application registry` rather than the Zope 'global' registry.""" from zope.component import getSiteManager getSiteManager.sethook(get_current_registry)
def test_unhook_zc_false(self): from pyramid.threadlocal import manager from zope.component import getSiteManager hook = lambda *arg: None try: getSiteManager.sethook(hook) self._callFUT(unhook_zca=False) finally: result = getSiteManager.sethook(None) self.assertEqual(result, hook) getSiteManager.reset() manager.clear()
def make_pycms_app(app, *includes, **settings): """ Create a w20e.pycms application and return it. The app is a router instance as created by Configurator.make_wsgi_app.""" config = Configurator(package=app, root_factory=root_factory, session_factory=SessionFactory('w20e_pycms_secret'), settings=settings) # enable Chameleon rendering # config.include('pyramid_chameleon') register_json_adapters(config) def get_registry(*args): return config.registry # hook up registry # getSiteManager.sethook(get_registry) config.include(pyramid_zcml) config.include('pyramid_mailer') config.load_zcml('w20e.pycms:bootstrap.zcml') config.scan('w20e.pycms') config.commit() config.load_zcml("configure.zcml") config.commit() # Other includes # for include in includes: config.include(include) # load plugin entry points of the pycms_plugin persuasion # for ep in pkg_resources.iter_entry_points(group='pycms_plugin'): fun = ep.load() config.include(fun) config.commit() config.commit() appmaker(config) return config.make_wsgi_app()
def test_unhook_zca(self): from zope.component import getSiteManager def foo(): '123' try: getSiteManager.sethook(foo) config = self._makeOne() config.unhook_zca() sm = getSiteManager() self.assertNotEqual(sm, '123') finally: getSiteManager.reset()
def test_uses_configured_site_manager(self): from zope.interface.registry import Components from zope.component import getSiteManager from zope.component.testfiles.components import comp, IApp registry = Components() def dummy(context=None): return registry getSiteManager.sethook(dummy) try: self._callFUT('registerUtility', comp, IApp, u'') self.assertTrue(registry.getUtility(IApp) is comp) finally: getSiteManager.reset()
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 test_defaults(self): from pyramid.threadlocal import manager from zope.component import getSiteManager registry = DummyRegistry() old = {'registry': registry} hook = lambda *arg: None try: getSiteManager.sethook(hook) manager.push(old) self._callFUT() current = manager.get() self.assertNotEqual(current, old) self.assertEqual(registry.inited, 2) finally: result = getSiteManager.sethook(None) self.assertNotEqual(result, hook) getSiteManager.reset() manager.clear()
def test_defaults(self): from pyramid.threadlocal import manager from zope.component import getSiteManager registry = DummyRegistry() old = {'registry':registry} hook = lambda *arg: None try: getSiteManager.sethook(hook) manager.push(old) self._callFUT() current = manager.get() self.assertNotEqual(current, old) self.assertEqual(registry.inited, 2) finally: result = getSiteManager.sethook(None) self.assertNotEqual(result, hook) getSiteManager.reset() manager.clear()
def test_uses_configured_site_manager(self): from zope.interface.registry import Components from zope.component import getSiteManager from zope.component.testfiles.components import comp, IApp from zope.component._compat import _BLANK registry = Components() def dummy(context=None): return registry getSiteManager.sethook(dummy) try: self._callFUT('registerUtility', comp, IApp, _BLANK) self.assertTrue(registry.getUtility(IApp) is comp) finally: getSiteManager.reset()
def test_defaults(self): from pyramid.threadlocal import manager registry = DummyRegistry() old = {'registry': registry} hook = lambda *arg: None try: self._setSMHook(hook) manager.push(old) self._callFUT() current = manager.get() self.assertNotEqual(current, old) self.assertEqual(registry.inited, 2) finally: getSiteManager = self._getSM() if getSiteManager is not None: result = getSiteManager.sethook(None) self.assertNotEqual(result, hook)
def test_defaults(self): from pyramid.threadlocal import manager registry = DummyRegistry() old = {'registry':registry} hook = lambda *arg: None try: self._setSMHook(hook) manager.push(old) self._callFUT() current = manager.get() self.assertNotEqual(current, old) self.assertEqual(registry.inited, 2) finally: getSiteManager = self._getSM() if getSiteManager is not None: result = getSiteManager.sethook(None) self.assertNotEqual(result, hook)
def test_it_defaults(self): from pyramid.threadlocal import manager from pyramid.threadlocal import get_current_registry from pyramid.registry import Registry from zope.component import getSiteManager old = True manager.push(old) try: config = self._callFUT() current = manager.get() self.failIf(current is old) self.assertEqual(config.registry, current['registry']) self.assertEqual(current['registry'].__class__, Registry) self.assertEqual(current['request'], None) finally: result = getSiteManager.sethook(None) self.assertEqual(result, get_current_registry) getSiteManager.reset() manager.clear()
try: set_version = int(v) if set_version < 0: raise Exception except: usage('Bad version number %s' % v) if latest and (set_version is not None): usage('Cannot use both --latest and --set-version together') if set_version and not package: usage('Not setting db version to %s (specify --package to ' 'specify which package to set the db version for)' % set_version) # hook gsm for good measure and max fwd compat getSiteManager.sethook(get_current_registry) root, closer = open_root(get_default_config()) managers = list(getUtilitiesFor(IEvolutionManager)) if package and package not in [x[0] for x in managers]: usage('No such package "%s"' % package) for pkg_name, factory in managers: if (package is None) or (pkg_name == package): __import__(pkg_name) pkg = sys.modules[pkg_name] VERSION = pkg.VERSION print 'Package %s' % pkg_name manager = factory(root, pkg_name, VERSION, 0)
def _setSMHook(self, hook): getSiteManager = self._getSM() if getSiteManager is not None: getSiteManager.sethook(hook)
def _assertSMHook(self, hook): getSiteManager = self._getSM() if getSiteManager is not None: result = getSiteManager.sethook(None) self.assertEqual(result, hook)
def _assertSMHook(self, hook): result = getSiteManager.sethook(None) self.assertEqual(result, hook)
def uninstall(self): getSiteManager.sethook(self.old) self.instances.remove(self)
def _setSMHook(self, hook): getSiteManager.sethook(hook)