def test_marker_applied_and_unapplied(self): """ Check that the IPlacefulMarker is applied to the workflow tool by the install, and removed by the uninstall. """ try: # GenericSetup 1.7.8 and higher from Products.GenericSetup.tool import DEPENDENCY_STRATEGY_REAPPLY DEPENDENCY_STRATEGY_REAPPLY # pyflakes except ImportError: DEPENDENCY_STRATEGY_REAPPLY = None self.failUnless(IPlacefulMarker.providedBy(self.workflow)) self.loginAsPortalOwner() self.qi.uninstallProducts(['CMFPlacefulWorkflow']) self.failIf(IPlacefulMarker.providedBy(self.workflow)) profile_id = 'Products.CMFPlacefulWorkflow:CMFPlacefulWorkflow' if DEPENDENCY_STRATEGY_REAPPLY is None: # Older GenericSetup. Reapply is the default. No alternative # strategy can be given. self.qi.installProduct('CMFPlacefulWorkflow') # setup_tool.runAllImportStepsFromProfile('profile-%s' % profile_id) else: # Newer GenericSetup. Upgrade is the default. We want to # reapply. setup_tool = self.portal.portal_setup setup_tool.runAllImportStepsFromProfile( 'profile-%s' % profile_id, dependency_strategy=DEPENDENCY_STRATEGY_REAPPLY) self.failUnless(IPlacefulMarker.providedBy(self.workflow))
def test_marker_applied_and_unapplied(self): """ Check that the IPlacefulMarker is applied to the workflow tool by the install, and removed by the uninstall. """ self.failUnless(IPlacefulMarker.providedBy(self.workflow)) self.loginAsPortalOwner() self.qi.uninstallProducts(['CMFPlacefulWorkflow']) self.failIf(IPlacefulMarker.providedBy(self.workflow)) self.qi.installProduct('CMFPlacefulWorkflow') self.failUnless(IPlacefulMarker.providedBy(self.workflow))
def test_marker_applied_and_unapplied(self): """ Check that the IPlacefulMarker is applied to the workflow tool by the install, and removed by the uninstall. """ self.assertTrue(IPlacefulMarker.providedBy(self.workflow)) self.qi.uninstall_product('CMFPlacefulWorkflow') self.assertFalse(IPlacefulMarker.providedBy(self.workflow)) self.qi.install_product('CMFPlacefulWorkflow') self.assertTrue(IPlacefulMarker.providedBy(self.workflow))
def test_marker_applied_and_unapplied(self): """ Check that the IPlacefulMarker is applied to the workflow tool by the install, and removed by the uninstall. """ self.assertTrue(IPlacefulMarker.providedBy(self.workflow)) self.loginAsPortalOwner() self.qi.uninstall_product('CMFPlacefulWorkflow') self.assertFalse(IPlacefulMarker.providedBy(self.workflow)) self.qi.install_product('CMFPlacefulWorkflow') self.assertTrue(IPlacefulMarker.providedBy(self.workflow))
def testReinstallCMFPlacefulWorkflow(self): try: from Products.CMFPlacefulWorkflow.interfaces import IPlacefulMarker except ImportError: return # first the product needs to be installed self.qi.installProduct('CMFPlacefulWorkflow') # Delete existing logs to prevent race condition self.ps.manage_delObjects(self.ps.objectIds()) # We remove the new marker, to ensure it's added on reinstall if IPlacefulMarker.providedBy(self.wf): noLongerProvides(self.wf, IPlacefulMarker) reinstallCMFPlacefulWorkflow(self.portal, []) self.assertTrue(IPlacefulMarker.providedBy(self.wf))
def testReinstallCMFPlacefulWorkflow(self): try: from Products.CMFPlacefulWorkflow.interfaces import IPlacefulMarker except ImportError: return # first the product needs to be installed self.qi.installProduct('CMFPlacefulWorkflow') # Delete existing logs to prevent race condition self.ps.manage_delObjects(self.ps.objectIds()) # We remove the new marker, to ensure it's added on reinstall if IPlacefulMarker.providedBy(self.wf): noLongerProvides(self.wf, IPlacefulMarker) reinstallCMFPlacefulWorkflow(self.portal, []) self.failUnless(IPlacefulMarker.providedBy(self.wf))
def uninstall(context): # Note: this function is registered as a pre_handler instead of a # post_handler, because otherwise toolset.xml has already been applied, # which removes the portal_placeful_workflow tool. portal = getToolByName(context, 'portal_url').getPortalObject() tool = getattr(portal, 'portal_placeful_workflow', None) if tool is not None: getSiteManager(portal).unregisterUtility( tool, IPlacefulWorkflowTool) logger.info('Unregistered portal_placeful_workflow') # uninstall configlets try: cptool = getToolByName(portal, 'portal_controlpanel') cptool.unregisterConfiglet(placeful_prefs_configlet['id']) logger.info('Removing CMFPlacefulWorkflow Configlet') except: logger.info('Failed to remove CMFPlacefulWorkflow Configlet') wf_tool = getToolByName(portal, 'portal_workflow') if IPlacefulMarker.providedBy(wf_tool): noLongerProvides(wf_tool, IPlacefulMarker) logger.info('Removed placeful marker from portal_workflow.') # Mark our base profile as uninstalled, because: # 1. It is good practice. # 2. Otherwise when the user installs CMFPlacefulWorkflow again, # portal_setup will not apply our base profile. portal_setup = getToolByName(portal, 'portal_setup') portal_setup.unsetLastVersionForProfile( 'Products.CMFPlacefulWorkflow:base')
def uninstall(self, reinstall=False, out=None): if out is None: out = StringIO() getSiteManager(self).unregisterUtility(self['portal_placeful_workflow'], IPlacefulWorkflowTool) # uninstall configlets try: cptool = getToolByName(self, 'portal_controlpanel') cptool.unregisterConfiglet(placeful_prefs_configlet['id']) out.write('Removing CMFPlacefulWorkflow Configlet') except: out.write('Failed to remove CMFPlacefulWorkflow Configlet') wf_tool = getToolByName(self, 'portal_workflow') if IPlacefulMarker.providedBy(wf_tool): noLongerProvides(wf_tool, IPlacefulMarker) return out.getvalue()