diff --git a/product/ERP5/tests/testBusinessTemplate.py b/product/ERP5/tests/testBusinessTemplate.py index 68800325b1f24eeb5ffc68266f4bd6ba2732521c..253aeea4a627ec5e4a99434b3365474e3b2f2712 100644 --- a/product/ERP5/tests/testBusinessTemplate.py +++ b/product/ERP5/tests/testBusinessTemplate.py @@ -107,8 +107,12 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): props = {} if cbt is not None: for id, wf_ids in cbt.items(): + wf_ids = list(wf_ids) + if 'geek_workflow' in wf_ids: + wf_ids.remove('geek_workflow') if id != "Geek Object": props['chain_%s' % id] = ', '.join(wf_ids) + pw.manage_changeWorkflows('', props=props) if 'erp5_geek' in self.getSkinsTool().objectIds(): self.getSkinsTool().manage_delObjects(['erp5_geek']) @@ -1186,6 +1190,34 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): props['chain_Geek Object'] = wf_id pw.manage_changeWorkflows('', props=props) + def stepModifyWorkflowChain(self, sequence=None, sequence_list=None, **kw): + """ + Modify the workflow chain not by business template installation + """ + wf_id = 'geek_workflow' + pw = self.getWorkflowTool() + workflow = pw._getOb(wf_id, None) + self.failUnless(workflow is not None) + cbt = pw._chains_by_type + props = {} + if cbt is not None: + for id, wf_ids in cbt.items(): + props['chain_%s' % id] = ','.join(wf_ids) + props['chain_Base Category'] = 'edit_workflow,%s' % wf_id + pw.manage_changeWorkflows('', props=props) + + def stepSaveWorkflowChain(self, sequence=None, sequence_list=None, **kw): + """ + Save the workflow chain as it is + """ + pw = self.getWorkflowTool() + cbt = pw._chains_by_type + props = {} + if cbt is not None: + for id, wf_ids in cbt.items(): + props['chain_%s' % id] = ','.join(wf_ids) + pw.manage_changeWorkflows('', props=props) + def stepCheckWorkflowChainRemoved(self, sequence=None, sequence_list=None, **kw): """ Check if the workflowChain has been removed @@ -1244,7 +1276,7 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): if cbt is not None: for id, wf_ids in cbt.items(): wf_ids = list(wf_ids) - if id == "Geek Object": + if wf_id in wf_ids: wf_ids.remove(wf_id) props['chain_%s' % id] = ','.join(wf_ids) pw.manage_changeWorkflows('', props=props) @@ -2933,6 +2965,7 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): CheckBuiltBuildingState \ CheckNotInstalledInstallationState \ InstallBusinessTemplate \ + ModifyWorkflowChain \ Tic \ CheckInstalledInstallationState \ CheckBuiltBuildingState \ @@ -2964,6 +2997,7 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): CheckSkinsLayers \ CheckWorkflowRemoved \ CheckWorkflowChainRemoved \ + SaveWorkflowChain \ ' sequence_list.addSequenceString(sequence_string) sequence_list.play(self, quiet=quiet)