def test_anonymous(self): self.portal = self.layer['portal'] setRoles(self.portal, TEST_USER_ID,['Manager']) #self.portal.invokeFactory('Folder', 'f0') self.assertEqual(self.view.anonymous(), False) logout() del self.app.REQUEST.__annotations__ self.assertEqual(self.view.anonymous(), True)
def test_is_locked(self): self.assertEqual(self.dview.is_locked(), False) ILockable(self.folder.d1).lock() logout() # The object is not "locked" if it was locked by the # current user del self.app.REQUEST.__annotations__ self.assertEqual(self.dview.is_locked(), True)
def ploneSite(self, plone_site_id, db=None, connection=None, environ=None): from zope.site.hooks import setSite, getSite, setHooks setHooks() site = getSite() with z2.zopeApp(db, connection, environ) as app: portal = app[plone_site_id] setSite(portal) login(portal, TEST_USER_NAME) try: yield portal finally: logout() if site is not portal: setSite(site)
def testDisableColumns(self): setRoles(self.portal, TEST_USER_ID,['Manager']) self.app = self.layer['app'] # Now add some portlets to be sure we have columns. For # simplicity we want a portlet that has no add form. Note # that apparently the Calender had no add form until Plone # 4.3, but since 4.4 it does, so it is not fit to use here. portlet = getUtility(IPortletType, name='portlets.Login') mapping_left = self.portal.restrictedTraverse( '++contextportlets++plone.leftcolumn') mapping_right = self.portal.restrictedTraverse( '++contextportlets++plone.rightcolumn') for m in mapping_left.keys(): del mapping_left[m] addview_left = mapping_left.restrictedTraverse('+/' + portlet.addview) for m in mapping_right.keys(): del mapping_right[m] addview_right = mapping_right.restrictedTraverse( '+/' + portlet.addview) # This is a NullAddForm - calling it does the work addview_left() addview_right() # Logout, otherwise the login portlet will never show. logout() # Check that we do not explicitly disable the columns. This # may happen if we change the request in this method or if the # addviews return an add-form after all. self.assertTrue('disable_plone.leftcolumn' not in self.app.REQUEST) self.assertTrue('disable_plone.rightcolumn' not in self.app.REQUEST) self.assertEqual(True, self.view.have_portlets('plone.leftcolumn')) self.app.REQUEST.set('disable_plone.leftcolumn', 1) self.assertEqual(False, self.view.have_portlets('plone.leftcolumn')) self.assertEqual(True, self.view.have_portlets('plone.rightcolumn')) self.app.REQUEST.set('disable_plone.rightcolumn', 1) self.assertEqual(False, self.view.have_portlets('plone.rightcolumn'))
def testDisableColumns(self): setRoles(self.portal, TEST_USER_ID, ['Manager']) self.app = self.layer['app'] # Now add some portlets to be sure we have columns. For # simplicity we want a portlet that has no add form. Note # that apparently the Calender had no add form until Plone # 4.3, but since 4.4 it does, so it is not fit to use here. portlet = getUtility(IPortletType, name='portlets.Login') mapping_left = self.portal.restrictedTraverse( '++contextportlets++plone.leftcolumn') mapping_right = self.portal.restrictedTraverse( '++contextportlets++plone.rightcolumn') for m in mapping_left.keys(): del mapping_left[m] addview_left = mapping_left.restrictedTraverse('+/' + portlet.addview) for m in mapping_right.keys(): del mapping_right[m] addview_right = mapping_right.restrictedTraverse('+/' + portlet.addview) # This is a NullAddForm - calling it does the work addview_left() addview_right() # Logout, otherwise the login portlet will never show. logout() # Check that we do not explicitly disable the columns. This # may happen if we change the request in this method or if the # addviews return an add-form after all. self.assertTrue('disable_plone.leftcolumn' not in self.app.REQUEST) self.assertTrue('disable_plone.rightcolumn' not in self.app.REQUEST) self.assertEqual(True, self.view.have_portlets('plone.leftcolumn')) self.app.REQUEST.set('disable_plone.leftcolumn', 1) self.assertEqual(False, self.view.have_portlets('plone.leftcolumn')) self.assertEqual(True, self.view.have_portlets('plone.rightcolumn')) self.app.REQUEST.set('disable_plone.rightcolumn', 1) self.assertEqual(False, self.view.have_portlets('plone.rightcolumn'))
def tearDownEnvironment(self, portal): """Log out, invalidate standard RAM caches, and unset the local component site to clean up after tests. """ # Clear the security manager from plone.app.testing import helpers helpers.logout() # Clear any cached data using plone.memoize's RAM caches from plone.memoize.ram import global_cache global_cache.invalidateAll() from zope.component import queryUtility from plone.memoize.ram import IRAMCache cache = queryUtility(IRAMCache) if cache and getattr(cache, '_cacheId', None): cache.invalidateAll() # Unset the local component site setSite(None)
def tearDownEnvironment(self, portal): """Log out, invalidate standard RAM caches, and unset the local component site to clean up after tests. """ # Clear the security manager from plone.app.testing import helpers helpers.logout() # Clear any cached data using plone.memoize's RAM caches from plone.memoize.ram import global_cache global_cache.invalidateAll() from zope.component import queryUtility from plone.memoize.ram import IRAMCache cache = queryUtility(IRAMCache) if cache is not None: cache.invalidateAll() # Unset the local component site from zope.site.hooks import setSite setSite(None)
def test_breadcrumbs_for_unpublished_publication(self): login(self.layer['app'], SITE_OWNER_NAME) wf_tool = getToolByName(self.portal, 'portal_workflow') wf_tool.doActionFor(self.pub, 'hide') logout() breadcrumbs_view = getMultiAdapter( (self.test_review, self.portal.REQUEST), name='breadcrumbs_view') crumbs = breadcrumbs_view.breadcrumbs() #FIXME: /plone/rezensionen/zeitschriften provides IBrowserDefault # for some reason, so it is skipped in the breadcrumbs. Not # so in a regular site. urls = [cr['absolute_url'].replace( '/rezensionen/', '/rezensionen/zeitschriften/') for cr in crumbs] self.assertEqual(len(crumbs), 5) self.assertNotIn(self.pub.absolute_url(), urls) self.assertNotIn(self.test_volume.absolute_url(), urls) self.assertNotIn(self.test_issue.absolute_url(), urls) login(self.layer['app'], SITE_OWNER_NAME) wf_tool.doActionFor(self.pub, 'show') logout()
def logout(self): logout()
def test_get_my_profiles_anonymous(self): helpers.logout() self.assertEquals(self.hw_view.get_my_profiles(), [])
def test__one_folder(self): """Add folder under portal.""" from Products.ATContentTypes.interfaces.folder import IATFolder base = IAdapter(self.portal) folder1 = self.portal[self.portal.invokeFactory('Folder', 'folder1')] folder1.reindexObject() query = {} self.assertEqual(len(base.get_brains(**query)), 1) self.assertEqual(len(base.get_objects(**query)), 1) self.assertEqual(len(base.get_content_listing(**query)), 1) self.assertEqual(base.get_brain(**query).id, 'folder1') self.assertEqual(base.get_object(**query).id, 'folder1') self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 1) self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 1) self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 1) self.assertEqual(base.get_brain(interfaces=IATFolder, **query).id, 'folder1') self.assertEqual(base.get_object(interfaces=IATFolder, **query).id, 'folder1') query = {'path': '/'.join(folder1.getPhysicalPath())} self.assertEqual(len(base.get_brains(**query)), 1) self.assertEqual(len(base.get_objects(**query)), 1) self.assertEqual(len(base.get_content_listing(**query)), 1) self.assertEqual(base.get_brain(**query).id, 'folder1') self.assertEqual(base.get_object(**query).id, 'folder1') self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 1) self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 1) self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 1) self.assertEqual(base.get_brain(interfaces=IATFolder, **query).id, 'folder1') self.assertEqual(base.get_object(interfaces=IATFolder, **query).id, 'folder1') query['depth'] = 0 self.assertEqual(len(base.get_brains(**query)), 1) self.assertEqual(len(base.get_objects(**query)), 1) self.assertEqual(len(base.get_content_listing(**query)), 1) self.assertEqual(base.get_brain(**query).id, 'folder1') self.assertEqual(base.get_object(**query).id, 'folder1') self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 1) self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 1) self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 1) self.assertEqual(base.get_brain(interfaces=IATFolder, **query).id, 'folder1') self.assertEqual(base.get_object(interfaces=IATFolder, **query).id, 'folder1') query['depth'] = 1 self.assertEqual(len(base.get_brains(**query)), 0) self.assertEqual(len(base.get_objects(**query)), 0) self.assertEqual(len(base.get_content_listing(**query)), 0) self.assertIsNone(base.get_brain(**query)) self.assertIsNone(base.get_object(**query)) self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 0) self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 0) self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 0) self.assertIsNone(base.get_brain(interfaces=IATFolder, **query)) self.assertIsNone(base.get_object(interfaces=IATFolder, **query)) query['depth'] = 0 self.assertEqual(len(base.get_brains(**query)), 1) self.assertEqual(len(base.get_objects(**query)), 1) self.assertEqual(len(base.get_content_listing(**query)), 1) self.assertEqual(base.get_brain(**query).id, 'folder1') self.assertEqual(base.get_object(**query).id, 'folder1') setRoles(self.portal, TEST_USER_ID, ['Member']) from plone.app.testing.helpers import logout logout() base = IAdapter(self.portal) self.assertEqual(len(base.get_brains(**query)), 0) query['unrestricted'] = True self.assertEqual(len(base.get_brains(**query)), 1)
def test_is_editable(self): self.assertEqual(self.dview.is_editable(), True) logout() del self.app.REQUEST.__annotations__ self.assertEqual(self.dview.is_editable(), False)
def logout(self): helpers.logout()