Commit a64acdb8 authored by wenjie.zheng's avatar wenjie.zheng

ERP5TypeTestCase.py: converting all DC workflow to new workflow dynamically for unit test.

parent 8160d264
......@@ -58,7 +58,7 @@ from Testing.ZopeTestCase import PortalTestCase, user_name
from Products.CMFCore.utils import getToolByName
from Products.DCWorkflow.DCWorkflow import ValidationFailed
from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter
from zLOG import LOG, DEBUG
from zLOG import LOG, DEBUG, WARNING
from Products.ERP5Type.tests.backportUnittest import SetupSiteError
from Products.ERP5Type.tests.utils import addUserToDeveloperRole
......@@ -787,8 +787,9 @@ class ERP5TypeCommandLineTestCase(ERP5TypeTestCaseMixin):
light_install = self.enableLightInstall()
create_activities = self.enableActivityTool()
hot_reindexing = self.enableHotReindexing()
# install erp5_workflow to allow early stage workflow migration.
for x, y in (("erp5_core_proxy_field_legacy", "erp5_base"),
("erp5_stock_cache", "erp5_pdm")):
("erp5_workflow", "erp5_base"), ("erp5_stock_cache", "erp5_pdm")):
if x not in template_list:
try:
template_list.insert(template_list.index(y), x)
......@@ -874,6 +875,7 @@ class ERP5TypeCommandLineTestCase(ERP5TypeTestCaseMixin):
light_install=True,
quiet=True):
template_tool = self.portal.portal_templates
workflow_tool = self.portal.portal_workflow
update_business_templates = os.environ.get('update_business_templates') is not None
BusinessTemplate_getModifiedObject = aq_base(
getattr(self.portal, 'BusinessTemplate_getModifiedObject', None))
......@@ -916,6 +918,26 @@ class ERP5TypeCommandLineTestCase(ERP5TypeTestCaseMixin):
if not quiet:
ZopeTestCase._print('done (%.3fs)\n' % (time.time() - start))
# Converting DCWorkflow dynamically
if workflow_tool.getPortalType() != "Workflow Tool":
raise NotImplementedError("Workflow tool has not been converted!")
for workflow_id in workflow_tool:
workflow = workflow_tool._getOb(workflow_id)
if workflow.getPortalType() not in ['Workflow', 'Interaction Workflow']:
LOG("COnverting workflow '%s'"%workflow_id,WARNING," in ERP5TypeTestCase.py 924")
new_workflow = workflow_tool.dc_workflow_asERP5Object(workflow_tool, workflow, temp=0)
type_workflow_dict = workflow_tool.getChainsByType()
for ptype_id in type_workflow_dict:
ptype = getattr(workflow_tool.getPortalObject().portal_types, ptype_id, None)
if ptype is not None and workflow.id in workflow_tool.getChainsByType()[ptype_id]:
# 1. clean DC workflow assignement:
workflow_tool.delTypeCBT(ptype.id, workflow.id)
# 2. assign ERP5 Workflow to portal type:
type_workflow_list = ptype.getTypeWorkflowList()
if new_workflow.getId() not in type_workflow_list:
ptype.addTypeWorkflowList(new_workflow.getId())
def setUpERP5Site(self,
business_template_list=(),
quiet=0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment