def readme_setup(tc): oc_setup.fresh_skin(tc) if not ISite.providedBy(tc.portal): enableLocalSiteHook(tc.portal) setSite(tc.portal) setHooks() setup_mock_geocoder()
def test_global_components_not_unregistered_on_delete(self): portal_type = u"testtype" fti = DexterityFTI(portal_type) container_dummy = self.create_dummy() # Mock the lookup of the site and the site manager at the site root dummy_site = self.create_dummy() self.mock_utility(dummy_site, ISiteRoot) site_manager_mock = self.mocker.proxy(PersistentComponents(bases=(getGlobalSiteManager(),))) getSiteManager_mock = self.mocker.replace('zope.app.component.hooks.getSiteManager') self.expect(getSiteManager_mock(dummy_site)).result(site_manager_mock) # Register FTI utility and factory utility self.mock_utility(fti, IDexterityFTI, name=portal_type) self.mock_utility(DexterityFactory(portal_type), IFactory, name=portal_type) # We expect to always be able to unregister without error, even if the # component exists. The factory is only unregistered if it was registered # with info='plone.dexterity.dynamic'. self.expect(site_manager_mock.unregisterUtility(provided=IDexterityFTI, name=portal_type)).passthrough() self.replay() ftiRemoved(fti, ObjectRemovedEvent(fti, container_dummy, fti.getId())) site_dummy = self.create_dummy(getSiteManager = lambda: site_manager_mock) setSite(site_dummy) setHooks() self.assertNotEquals(None, queryUtility(IDexterityFTI, name=portal_type)) self.assertNotEquals(None, queryUtility(IFactory, name=portal_type))
def setUp(self): super(SiteManagerTest, self).setUp() self.root = root = Root() self.f1 = f1 = Folder().__of__(root) self.sm1 = sm1 = SiteManager() f1.setSiteManager(sm1) self.p1 = p1 = Package().__of__(sm1) self.f2 = f2 = Folder().__of__(f1) self.sm2 = sm2 = SiteManager() f2.setSiteManager(sm2) self.p2 = p2 = Package().__of__(sm2) sm1.next = getGlobalSiteManager() sm2.next = sm1 self.unparented_folder = Folder() self.unrooted_subfolder = Folder().__of__(self.unparented_folder) zcml.load_config("meta.zcml", Products.Five) zcml.load_config("permissions.zcml", Products.Five) zcml.load_config("configure.zcml", Products.Five.site) zcml_text = """\ <five:localsite xmlns:five="http://namespaces.zope.org/five" class="Products.Five.site.tests.dummy.DummySite" />""" zcml.load_string(zcml_text) # Hook up custom component architecture calls; we need to do # this here because zope.app.component.hooks registers a # cleanup with the testing cleanup framework, so the hooks get # torn down by placelesssetup each time. setHooks()
def test_components_registered_on_add(self): portal_type = u"testtype" fti = DexterityFTI(portal_type) container_dummy = self.create_dummy() # Mock the lookup of the site and the site manager at the site root dummy_site = self.create_dummy() self.mock_utility(dummy_site, ISiteRoot) site_manager_mock = self.mocker.proxy(PersistentComponents(bases=(getGlobalSiteManager(),))) getSiteManager_mock = self.mocker.replace('zope.app.component.hooks.getSiteManager') self.expect(getSiteManager_mock(dummy_site)).result(site_manager_mock) # We expect that no components are registered , so look for all registrations self.expect(site_manager_mock.registerUtility(fti, IDexterityFTI, portal_type, info='plone.dexterity.dynamic')).passthrough() self.expect(site_manager_mock.registerUtility( mocker.MATCH(lambda x: isinstance(x, DexterityFactory) and x.portal_type == portal_type), IFactory, portal_type, info='plone.dexterity.dynamic')).passthrough() self.replay() ftiAdded(fti, ObjectAddedEvent(fti, container_dummy, fti.getId())) site_dummy = self.create_dummy(getSiteManager = lambda: site_manager_mock) setSite(site_dummy) setHooks() self.assertNotEquals(None, queryUtility(IDexterityFTI, name=portal_type)) self.assertNotEquals(None, queryUtility(IFactory, name=portal_type))
def test_components_unregistered_on_delete(self): portal_type = u"testtype" fti = DexterityFTI(portal_type) container_dummy = self.create_dummy() # Mock the lookup of the site and the site manager at the site root dummy_site = self.create_dummy() self.mock_utility(dummy_site, ISiteRoot) site_manager_mock = self.mocker.proxy(PersistentComponents(bases=(getGlobalSiteManager(),))) getSiteManager_mock = self.mocker.replace('zope.app.component.hooks.getSiteManager') self.expect(getSiteManager_mock(dummy_site)).result(site_manager_mock).count(1,None) # We expect to always be able to unregister without error, even if the # components do not exists (as here) self.expect(site_manager_mock.unregisterUtility(provided=IDexterityFTI, name=portal_type)).passthrough() self.expect(site_manager_mock.unregisterUtility(provided=IFactory, name=portal_type)).passthrough() self.replay() # First add the components ftiAdded(fti, ObjectAddedEvent(fti, container_dummy, fti.getId())) # Then remove them again ftiRemoved(fti, ObjectRemovedEvent(fti, container_dummy, fti.getId())) site_dummy = self.create_dummy(getSiteManager = lambda: site_manager_mock) setSite(site_dummy) setHooks() self.assertEquals(None, queryUtility(IDexterityFTI, name=portal_type)) self.assertEquals(None, queryUtility(IFactory, name=portal_type))
def afterSetUp(self): OpenPlansTestCase.afterSetUp(self) self.folder.manage_permission('OpenPlans: Add OpenProject', roles=('Manager', 'Owner')) self.proj = makeContent(self.folder, 'project1', 'OpenProject') setSite(self.portal) setHooks()
def testSetUp(cls): import Products zcml.load_config('meta.zcml', Products.Five) zcml.load_config('event.zcml', Products.Five) zcml.load_config('event.zcml', Products.CMFCore) setHooks()
def afterSetUp(self): setUp() zcml.load_config("meta.zcml", Products.Five) zcml.load_config("permissions.zcml", Products.Five) zcml.load_config("configure.zcml", Products.Five.component) zcml.load_config("configure.zcml", Products.Five.site) zcml_text = """\ <five:localsite xmlns:five="http://namespaces.zope.org/five" class="Products.Five.site.tests.dummy.DummySite" />""" import warnings showwarning = warnings.showwarning warnings.showwarning = lambda *a, **k: None zcml.load_string(zcml_text) manage_addDummySite(self.folder, 'site') enableLocalSiteHook(self.folder.site) warnings.showwarning = showwarning # Hook up custom component architecture calls; we need to do # this here because zope.app.component.hooks registers a # cleanup with the testing cleanup framework, so the hooks get # torn down by placelesssetup each time. setHooks()
def silvaRoot(db=None, connection=None, environ=None): """Context manager for working with the Silva root during layer setup:: with silvaRoot() as silvaroot: ... This is based on the ``z2.zopeApp()`` context manager. See the module ``plone.testing.z2`` for details. Do not use this in a test. Use the 'silvaroot' resource from the SilvaFixture layer instead! Pass a ZODB handle as ``db`` to use a specificdatabase. Alternatively, pass an open connection as ``connection`` (the connection will not be closed). """ from zope.app.component.hooks import setHooks setHooks() for app in z2.zopeApp(db, connection, environ): silvaroot = app[SILVA_SITE_ID] login(silvaroot, SITE_OWNER_NAME) try: yield silvaroot # the finally is replaced by the pair except else # 2.4 does not accept yield in a try...finally except: logout() else: logout()
def tearDown(self): for app in z2.zopeApp(): silvaroot = app[SILVA_SITE_ID] from zope.app.component.hooks import setHooks setHooks() # Allow subclass to tear down persistent fixture self.tearDownSilvaSite(silvaroot) # Make sure zope.security checkers can be set up and torn down # reliably security.popCheckers() # Pop the component registry, thus removing component # architecture registrations popGlobalRegistry(silvaroot) # Allow subclass to tear down products self.tearDownZope(app) # Zap the configuration context del self['configurationContext'] # Pop the demo storage, thus restoring the database to the # previous state self['zodbDB'].close() del self['zodbDB']
def setUp(test): setup.placefulSetUp(True) setUpDublinCore() component.provideAdapter(storage.Storage) component.provideAdapter(AttributeAnnotations) hooks.setHooks() setup.setUpTraversal() setup.setUpSiteManagerLookup() setup.setUpTestAsModule(test, 'zojax.content.model.README') # generate extension ExtensionClass = ExtensionType( "content.model", IViewModelExtension, ViewModelExtension, "View Model", "View model extension.", layer=interface.Interface) # register adater component.provideAdapter( Wrapper(ExtensionClass), (interface.Interface, interface.Interface, ExtensionMarker), IViewModelExtension) # register vocabulary getVocabularyRegistry().register( 'zojax.content.model-list', Models()) component.provideAdapter( Renderer, (IViewModelSupport, interface.Interface), interface.Interface, name='index.html')
def test_components_reregistered_on_rename(self): portal_type = u"testtype" fti = DexterityFTI(portal_type) container_dummy = self.create_dummy() # Mock the lookup of the site and the site manager at the site root dummy_site = self.create_dummy() self.mock_utility(dummy_site, ISiteRoot) site_manager_mock = self.mocker.proxy(PersistentComponents(bases=(getGlobalSiteManager(),))) getSiteManager_mock = self.mocker.replace('zope.app.component.hooks.getSiteManager') self.expect(getSiteManager_mock(dummy_site)).result(site_manager_mock).count(1,None) # First look for unregistration of all local components self.expect(site_manager_mock.unregisterUtility(provided=IDexterityFTI, name=portal_type)).passthrough() # Then look for re-registration of global components self.expect(site_manager_mock.registerUtility(fti, IDexterityFTI, portal_type, info='plone.dexterity.dynamic')).passthrough() self.expect(site_manager_mock.registerUtility( mocker.MATCH(lambda x: isinstance(x, DexterityFactory) and x.portal_type == portal_type), IFactory, portal_type, info='plone.dexterity.dynamic')).passthrough() self.assertEquals('string:${folder_url}/++add++testtype', fti.add_view_expr) self.replay() ftiRenamed(fti, ObjectMovedEvent(fti, container_dummy, fti.getId(), container_dummy, u"newtype")) site_dummy = self.create_dummy(getSiteManager = lambda: site_manager_mock) setSite(site_dummy) setHooks() self.assertNotEquals(None, queryUtility(IDexterityFTI, name=portal_type)) self.assertNotEquals(None, queryUtility(IFactory, name=portal_type))
def enableLocalSiteHook(obj): warnings.warn("The enableLocalSiteHook is deprecated and will be removed " "in Zope 2.12. \nSee Five/doc/localsite.txt .", DeprecationWarning, 2) enableSite(obj) components = FiveSiteManager(obj) obj.setSiteManager(components) setSite(obj) setHooks()
def setUp(cls): import Products # BBB: for Five < 1.5.2 cls._fallback_translation_service = i18n._fallback_translation_service i18n._fallback_translation_service = _FallbackTranslationService() zcml.load_config('testing.zcml', Products.CMFCore) setHooks()
def _placefulSetUp(portal): '''Sets the local site/manager.''' from zope.app.component.hooks import setHooks, setSite from zope.component.interfaces import ComponentLookupError setHooks() try: setSite(portal) except ComponentLookupError: pass
def afterSetUp(self): setHooks() setSite(self.portal) self.setRoles(('Manager',)) self.portlets = ({'module': relatednews, 'name': 'RelatedNews',}, {'module': relatedevents, 'name': 'RelatedEvents',}, {'module': relatedcontent, 'name': 'RelatedContent',}, {'module': relateditem, 'name': 'RelatedItem',}, )
def setUp(test): setup.placefulSetUp(True) component.provideAdapter(storage.Storage) component.provideAdapter(AttributeAnnotations) hooks.setHooks() setup.setUpTraversal() setup.setUpSiteManagerLookup() setup.setUpTestAsModule(test, 'zojax.extensions.README')
def setUp(cls): """ do all universal remember project test initialization in the layer here this layer is for tests that are non-destructive. destructive tests need to go in a sub-layer """ txn.begin() app = ZopeTestCase.app() setHooks() setSite(app.plone) # BBB: Plone 3.0 no longer allows anonymous users to join by # default. This should be removed and the tests adjusted when # Plone 2.5 is no longer supported in trunk app.plone.manage_permission( 'Add portal member', roles=[], acquire=1) setup_tool = app.plone.portal_setup # XXX: ugly hack to work around interference from the inherited # 'description' attribute if type(MemberDataContainer.description) != property: MemberDataContainer.description = property( fget = MemberDataContainer._nope, fset = MemberDataContainer._setDescription) setup_tool.runAllImportStepsFromProfile('profile-remember:default') # mock sending emails rtool = getToolByName(app.plone, 'portal_registration') rtool.MailHost = MailHostMock() rtool.mail_password_response = do_nothing # don't send emails out by default ptool = getToolByName(app.plone, 'portal_properties') ptool.site_properties.validate_email = 0 # add all our remember members (as portal_owner) user = app.acl_users.getUser('portal_owner') newSecurityManager(None, user) for mem_id in mem_data: addMember(app.plone, mem_id) # stock default plone non-remember user/member user_name = 'non_remember_member' user_password = '******' user_role = 'Member' uf = app.plone.acl_users uf.source_users.doAddUser(user_name, user_password) non_remember_member = uf.getUser(user_name) non_remember_member._addRoles(['Member']) txn.commit()
def setUp(self): BaseRegistryTests.setUp(self) setHooks() self.root.site = Folder(id='site') self.site = self.root.site gen = PloneGenerator() gen.enableSite(self.site) setSite(self.site) sm = getSiteManager(self.site) sm.registerUtility(MarscatsSettingsStorage(), IMarscatsSettingsStorage) self.storage = getUtility(IMarscatsSettingsStorage)
def setUp(test): setHooks() setup.setUpTraversal() setup.setUpSiteManagerLookup() site = setup.placefulSetUp(True) site.__name__ = u'portal' component.provideAdapter( PrincipalAnnotations, (IPrincipal,), IAnnotations) component.provideAdapter(getMessageStorage) setup.setUpTestAsModule(test, name='zojax.messaging.TESTS')
def testSetUp(cls): import Products.Five import Products.GenericSetup import Products.CMFCore import Products.CMFCore.exportimport zcml.load_config('meta.zcml', Products.Five) zcml.load_config('permissions.zcml', Products.Five) zcml.load_config('configure.zcml', Products.GenericSetup) zcml.load_config('tool.zcml', Products.CMFCore) zcml.load_config('configure.zcml', Products.CMFCore.exportimport) zcml.load_string(_DUMMY_ZCML) setHooks()
def setUp(self): setHooks() self.site = Folder('site') gen = PloneGenerator() gen.enableSite(self.site) setSite(self.site) sm = getSiteManager() sm.registerUtility(MarscatsSettingsStorage(), IMarscatsSettingsStorage) self._obj = getUtility(IMarscatsSettingsStorage) self._BODY = _MARSCATS_XML
def setUp(self): setHooks() self.site = Folder('site') gen = PloneGenerator() gen.enableSite(self.site) setSite(self.site) sm = getSiteManager() self.site.portal_types = DummyTypesTool() sm.registerUtility(self.site.portal_types, ITypesTool) self.site.portal_factory = FactoryTool() self._obj = self.site.portal_factory self._BODY = _FACTORYTOOL_XML
def setUp(self): setHooks() self.site = Folder('site') gen = PloneGenerator() gen.enableSite(self.site) setSite(self.site) sm = getSiteManager() self.site.portal_actionicons = DummyActionIconsTool() sm.registerUtility(self.site.portal_actionicons, IActionIconsTool) self.site.portal_control_panel = PloneControlPanel() sm.registerUtility(self.site.portal_control_panel, IControlPanel) self._obj = self.site.portal_control_panel self._BODY = _CONTROLPANEL_XML
def contents_content(tc): tc.loginAsPortalOwner() proj = tc.portal.projects.p2 proj.invokeFactory('Document', 'new1', title='new title') proj.invokeFactory('Image', 'img1', title='new image') proj.restrictedTraverse('project-home').invokeFactory('FileAttachment', 'fa1', title='new file') proj.new1.invokeFactory('FileAttachment', 'fa2', title='new1 file') proj.invokeFactory('Folder', 'lists', title='Listen Stub') lists = proj.lists lists.setLayout('mailing_lists') alsoProvides(lists, IListenContainer) setSite(tc.portal) setHooks() proj.lists.invokeFactory('Open Mailing List', 'list1', title=u'new list')
def setUp(self): # Create and enable a local component registry site = Folder() createComponentRegistry(site) setHooks() setSite(site) sm = getSiteManager() tool = DummyTool() site._setObject(tool.id, tool) tool2 = DummyTool2() site._setObject(tool2.id, tool2) self._obj = sm
def setUp(self): # Stack a new DemoStorage on top of the one from z2.STARTUP. self['zodbDB'] = zodb.stackDemoStorage( self.get('zodbDB'), name='SilvaFixture' ) self.setUpZCML() from zope.app.component.hooks import setHooks setHooks() # Set up products and the default content for app in z2.zopeApp(): self.setUpProducts(app) self.setUpDefaultContent(app)
def setUp(self): # global view registration provideAdapter(SimpleViewClass, (Interface, IBrowserRequest), provides=Interface, name='view') provideAdapter(SimpleViewClass, (Interface, IDummyBrowserLayer), provides=Interface, name='view') # local view registration site = DummySite() setSite(site) setHooks() custom_zpt = TTWViewTemplate( id = 'customized_view', text = 'test', view = SimpleViewClass, permission = 'View', name = 'view') site.portal_view_customizations.addTemplate('customized_view', custom_zpt) sm = site.getSiteManager() sm.registerAdapter(custom_zpt, (Interface, IDummyBrowserLayer), provided=Interface, name='view')
def afterSetUp(self): BodyAdapterTestCase.setUp(self) # Create and enable a local component registry createComponentRegistry(self.app) setHooks() setSite(self.app) sm = getSiteManager() tool = DummyTool() self.app._setObject(tool.id, tool) tool2 = DummyTool2() self.folder._setObject(tool2.id, tool2) self._obj = sm self._BODY = _COMPONENTS_BODY
def afterSetUp(self): BodyAdapterTestCase.setUp(self) # Create and enable a local component registry createComponentRegistry(self.app) setHooks() setSite(self.app) sm = getSiteManager() tool = DummyTool() self.app._setObject(tool.id, tool) tool2 = DummyTool2() self.app._setObject(tool2.id, tool2) self._obj = sm self._BODY = _COMPONENTS_BODY
def setUp(cls): metaconfigure.debug_mode = True import plone.app.dexterity zcml.load_config('meta.zcml', plone.app.dexterity) zcml.load_config('configure.zcml', plone.app.dexterity) metaconfigure.debug_mode = False # import the default profile root = app() portal = root.plone setHooks() setSite(portal) tool = getToolByName(portal, 'portal_setup') profile = 'profile-plone.app.dexterity:default' tool.runAllImportStepsFromProfile(profile, purge_old=False) setSite(None) # and commit the changes commit() close(root)
def afterSetUp(self): setHooks() setSite(self.portal) self.setRoles(('Manager',)) self.atvm = getToolByName(self.portal, 'portal_vocabularies') hierarchicalVocabs = {} hierarchicalVocabs[('regions', 'Some regions in europe')] = { ('aut', 'Austria'): { ('tyr', 'Tyrol'): { ('auss', 'Ausserfern'): {}, } }, ('ger', 'Germany'): { ('bav', 'Bavaria'):{} }, } createHierarchicalVocabs(self.atvm, hierarchicalVocabs)
def popGlobalRegistry(silvaroot): """Restore the global component registry form the top of the stack, as set with ``pushGlobalRegistry()``. Also ensure that the persistent component registry at ``silvaroot`` has the new global registry as its base. """ from zope.app.component.hooks import setSite, getSite, setHooks site = getSite() # Now pop the registry. We need to do it in this somewhat convoluted way # to avoid the risk of unpickling errors previous = zca.popGlobalRegistry() if site is not None: setHooks() setSite(site) return previous
def setup_utility(self): """ register the IMemberLookup utility with the portal """ portal = self.portal import Products.Five from Products.Five import zcml zcml.load_config('meta.zcml', Products.Five) zcml.load_config('permissions.zcml', Products.Five) zcml.load_config("configure.zcml", Products.Five.site) from Products.listen.utilities import tests zcml.load_config('configure.zcml', tests) from Products.listen.content import tests as content_tests zcml.load_config('configure.zcml', content_tests) site = portal setSite(site) sm = site.getSiteManager() member_to_email_utility = MemberToEmail() sm.registerUtility(member_to_email_utility, IMemberLookup) sm.registerUtility(ListLookup('list_lookup'), IListLookup) setHooks() setup_logging()
def afterSetUp(self): setHooks() setSite(self.portal) self.setRoles(('Manager', )) self.portlets = ( { 'module': relatednews, 'name': 'RelatedNews', }, { 'module': relatedevents, 'name': 'RelatedEvents', }, { 'module': relatedcontent, 'name': 'RelatedContent', }, { 'module': relateditem, 'name': 'RelatedItem', }, )
def afterSetUp(self): BodyAdapterTestCase.setUp(self) # Create and enable a local component registry createComponentRegistry(self.app) setHooks() setSite(self.app) sm = getSiteManager() sm.registerUtility(DummyUtility(), IDummyInterface) sm.registerUtility(DummyUtility(), IDummyInterface, name=u'foo') tool = DummyTool() self.app._setObject(tool.id, tool) obj = self.app[tool.id] sm.registerUtility(obj, IDummyInterface, name=u'dummy tool name') tool2 = DummyTool2() self.folder._setObject(tool2.id, tool2) obj = self.folder[tool2.id] sm.registerUtility(obj, IDummyInterface, name=u'dummy tool name2') self._obj = sm self._BODY = _COMPONENTS_BODY
def testSetUp(cls): import Products.Five zcml.load_config('meta.zcml', Products.Five) zcml.load_config('traversing.zcml', Products.Five) setHooks()
def setUp(self): FSDTMLMaker.setUp(self) RequestTest.setUp(self) setHooks()
def setUp(cls): import Products zcml.load_config('testing.zcml', Products.CMFCore) setHooks()