[Erp5-report] r45291 luke - /erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Apr 11 16:10:11 CEST 2011
Author: luke
Date: Mon Apr 11 16:10:11 2011
New Revision: 45291
URL: http://svn.erp5.org?rev=45291&view=rev
Log:
- create mixin for different test classes for Business Templates
- prepare skeleton for all document-like BT objects
Modified:
erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
Modified: erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBusinessTemplate.py?rev=45291&r1=45290&r2=45291&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBusinessTemplate.py [utf8] Mon Apr 11 16:10:11 2011
@@ -57,27 +57,11 @@ from Products.PortalTransforms.Transform
Transform_tr_init = Transform._tr_init
Transform_manage_beforeDelete = Transform.manage_beforeDelete
-class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor):
- """
- Test these operations:
-
- - Create a template
-
- - Install a template
-
- - Uninstall a template
-
- - Upgrade a template
- """
-
+class BusinessTemplateMixin(ERP5TypeTestCase, LogInterceptor):
def getBusinessTemplateList(self):
return ('erp5_base',
'erp5_csv_style',
)
-
- def getTitle(self):
- return "Business Template"
-
## Ignore errors from PortalTransforms (e.g. missing binaries)
def _catch_log_errors(self):
@@ -2890,197 +2874,759 @@ class TestBusinessTemplate(ERP5TypeTestC
description='bt for unit_test')
sequence.edit(dependency_bt=template)
- # tests
- def test_Title(self):
- """Tests the Title of the Template Tool."""
- self.assertEquals('Template Tool', self.getTemplateTool().Title())
+ def stepSetSkinFolderRegistredSelections(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ skin_folder = ps._getOb(skin_id, None)
+ skin_folder._setProperty(
+ 'business_template_registered_skin_selections', ('Foo',),
+ type='tokens')
- def test_01_checkNewSite(self):
- """Test Check New Site"""
- sequence_list = SequenceList()
- sequence_string = '\
- UseCoreBusinessTemplate \
- CheckTools \
- CheckBuiltBuildingState \
- CheckInstalledInstallationState \
- CheckSkinsLayers \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
+ def stepSetSkinFolderRegistredSelections2(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ skin_folder = ps._getOb(skin_id, None)
+ skin_folder._updateProperty(
+ 'business_template_registered_skin_selections', ('Foo', 'Bar',))
- # test of portal types
- def test_02_BusinessTemplateWithPortalTypes(self):
- """Test Business Template With Portal Types"""
- sequence_list = SequenceList()
- sequence_string = '\
- CreatePortalType \
- CreateNewBusinessTemplate \
- UseExportBusinessTemplate \
- AddPortalTypeToBusinessTemplate \
- FillPortalTypesFields \
- CheckModifiedBuildingState \
- CheckNotInstalledInstallationState \
- BuildBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckObjectPropertiesInBusinessTemplate \
- SaveBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- RemovePortalType \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- InstallBusinessTemplate \
- Tic \
- CheckInstalledInstallationState \
- CheckBuiltBuildingState \
- CheckNoTrashBin \
- CheckSkinsLayers \
- CheckPortalTypeExists \
- CreateSecondBusinessTemplate \
- UseSecondBusinessTemplate \
- AddPortalTypeToBusinessTemplate \
- FillPortalTypesFields \
- ModifyPortalTypeInBusinessTemplate \
- CheckModifiedBuildingState \
- CheckNotInstalledInstallationState \
- BuildBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckObjectPropertiesInBusinessTemplate \
- SaveBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- InstallBusinessTemplate \
- Tic \
- CheckInstalledInstallationState \
- CheckBuiltBuildingState \
- CheckSkinsLayers \
- CheckPortalTypeExists \
- UninstallBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckPortalTypeRemoved \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
+ def stepCreateSkinSelection(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ ps.manage_skinLayers(skinpath=('erp5_core',), skinname='Foo', add_skin=1)
- def test_021_BusinessTemplateWithPortalTypesAndWrongValues(self):
- """Test Business Template With Portal Types and Bad Values"""
- sequence_list = SequenceList()
- sequence_string = '\
- CreatePortalType \
- CreateNewBusinessTemplate \
- UseExportBusinessTemplate \
- AddPortalTypeToBusinessTemplate \
- FillPortalTypesFields \
- FillWrongPortalTypesFields \
- CheckModifiedBuildingState \
- CheckNotInstalledInstallationState \
- CheckBuildWithBadPortalTypeFailed \
- RemovePortalType \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
+ def stepSetStaticSkinFolderRegistredSelections(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('static_skin_folder_id')
+ skin_folder = ps._getOb(skin_id, None)
+ skin_folder._setProperty(
+ 'business_template_registered_skin_selections', ('Foo',),
+ type='tokens')
+ selection = ps.getSkinPath('Foo')
+ selection = selection.split(',')
+ if skin_id not in selection:
+ selection.append(skin_id)
+ ps.manage_skinLayers(skinpath=tuple(selection),
+ skinname='Foo', add_skin=1)
- # test of skins
- def test_03_BusinessTemplateWithSkins(self):
- """Test Business Template With Skin Folder"""
- sequence_list = SequenceList()
- sequence_string = '\
- CreateSkinFolder \
- CreateNewBusinessTemplate \
- UseExportBusinessTemplate \
- AddSkinFolderToBusinessTemplate \
- CheckModifiedBuildingState \
- CheckNotInstalledInstallationState \
- BuildBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckObjectPropertiesInBusinessTemplate \
- SaveBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- RemoveSkinFolder \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- InstallBusinessTemplate \
- Tic \
- CheckInstalledInstallationState \
- CheckBuiltBuildingState \
- CheckNoTrashBin \
- CheckSkinsLayers \
- CheckSkinFolderExists \
- UninstallBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckSkinFolderRemoved \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
+ def stepCheckSkinSelectionAdded(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ # a new skin selection is added
+ self.assertTrue('Foo' in ps.getSkinSelections())
+ # and it contains good layers
+ layers = ps.getSkinPath('Foo').split(',')
+ self.assertTrue(skin_id in layers, layers)
+ self.assertTrue('erp5_core' in layers, layers)
+ self.assertFalse('erp5_xhtml_style' in layers, layers)
+ skin_folder = ps._getOb(skin_id, None)
+ skin_selection_list = skin_folder.getProperty(
+ 'business_template_registered_skin_selections', ())
+ self.assertTrue('Foo' in skin_selection_list)
- # test of workflow
- def test_04_BusinessTemplateWithWorkflow(self):
- """Test Business Template With Workflow"""
- sequence_list = SequenceList()
- sequence_string = '\
- CreatePortalType \
- CreateWorkflow \
- CreateNewBusinessTemplate \
- UseExportBusinessTemplate \
- AddWorkflowToBusinessTemplate \
- AddWorkflowChainToBusinessTemplate \
- CheckModifiedBuildingState \
- CheckNotInstalledInstallationState \
- BuildBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckObjectPropertiesInBusinessTemplate \
- SaveBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- RemoveWorkflow \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- InstallBusinessTemplate \
- Tic \
- CheckInstalledInstallationState \
- CheckBuiltBuildingState \
- CheckNoTrashBin \
- CheckSkinsLayers \
- CheckWorkflowExists \
- UninstallBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckWorkflowRemoved \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
+ def stepCheckStaticSkinSelection(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ static_skin_id = sequence.get('static_skin_folder_id')
+ # a new skin selection is added
+ self.assertTrue('Foo' in ps.getSkinSelections())
+ # and it contains good layers
+ layers = ps.getSkinPath('Foo').split(',')
+ self.assertTrue(skin_id in layers, layers)
+ self.assertTrue('erp5_core' in layers, layers)
+ self.assertFalse('erp5_xhtml_style' in layers, layers)
+ self.assertTrue(static_skin_id in layers, layers)
- def test_041_BusinessTemplateWithWorkflowRemoved(self):
- """Test Business Template With Remove Of Workflow"""
- sequence_list = SequenceList()
- sequence_string = '\
+ def stepCreateCustomWorkflow(self, sequence=None, **kw):
+ """
+ Create a custom workflow
+ """
+ wf_id = 'custom_geek_workflow'
+ pw = self.getWorkflowTool()
+ addWorkflowByType(pw, WORKFLOW_TYPE, wf_id)
+ workflow = pw._getOb(wf_id, None)
+ self.failUnless(workflow is not None)
+ sequence.edit(workflow_id=workflow.getId())
+ 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)
+ key = 'chain_Geek Object'
+ if props.has_key(key):
+ props[key] = '%s,%s' % (props[key], wf_id)
+ else:
+ props[key] = wf_id
+ pw.manage_changeWorkflows('', props=props)
+
+ def stepCreateCustomBusinessTemplate(self, sequence=None, **kw):
+ """
+ Create a custom Business Template
+ """
+ pt = self.getTemplateTool()
+ template = pt.newContent(portal_type='Business Template')
+ self.failUnless(template.getBuildingState() == 'draft')
+ self.failUnless(template.getInstallationState() == 'not_installed')
+ template.edit(title='custom geek template',
+ version='1.0',
+ description='custom bt for unit_test')
+ sequence.edit(export_bt=template)
+
+ def stepCheckCustomWorkflowChain(self, sequence=None, **kw):
+ """
+ Check custom workflow chain
+ """
+ present = 0
+ pw = self.getWorkflowTool()
+ cbt = pw._chains_by_type
+ if cbt is not None:
+ for id, wf_ids in cbt.items():
+ if id == "Geek Object":
+ present = 1
+ self.assertEqual(present, 1)
+ self.assertSameSet(cbt['Geek Object'],
+ ('geek_workflow', 'custom_geek_workflow'))
+
+ def stepCheckOriginalWorkflowChain(self, sequence=None, **kw):
+ """
+ Check original workflow chain
+ """
+ present = 0
+ pw = self.getWorkflowTool()
+ cbt = pw._chains_by_type
+ if cbt is not None:
+ for id, wf_ids in cbt.items():
+ if id == "Geek Object":
+ present = 1
+ self.assertEqual(present, 1)
+ self.assertSameSet(cbt['Geek Object'],
+ ('geek_workflow', ))
+
+ def stepCheckEmptyWorkflowChain(self, sequence=None, **kw):
+ """
+ Check that workflow chain is empty
+ """
+ present = 0
+ pw = self.getWorkflowTool()
+ cbt = pw._chains_by_type
+ if cbt is not None:
+ for id, wf_ids in cbt.items():
+ if id == "Geek Object":
+ present = 1
+ break
+ if present:
+ self.assertEqual(0, len(wf_ids))
+
+ def stepCopyBusinessTemplate(self, sequence=None, **kw):
+ """
+ Copy business template
+ """
+ portal = self.getPortalObject()
+ template_tool = portal.portal_templates
+ import_bt = sequence.get('current_bt')
+ cb_data = template_tool.manage_copyObjects([import_bt.getId()])
+ copied, = template_tool.manage_pasteObjects(cb_data)
+ sequence.edit(current_bt=template_tool._getOb(copied['new_id']))
+
+ def stepRemoveWorkflowFromBusinessTemplate(self, sequence=None, **kw):
+ """
+ Remove workflow to business template
+ """
+ bt = sequence.get('current_bt', None)
+ self.failUnless(bt is not None)
+ current_twi = list(bt.getTemplateWorkflowIdList())
+ current_twi.remove(sequence.get('workflow_id', ''))
+ bt.edit(template_workflow_id_list=current_twi)
+
+ def stepRemoveWorkflowChainFromBusinessTemplate(self, sequence=None, **kw):
+ """
+ Remove workflow chain to business template
+ """
+ bt = sequence.get('current_bt', None)
+ self.failUnless(bt is not None)
+ workflow_id = sequence.get('workflow_id', '')
+ new_value = []
+ workflow_chain_list = list(bt.getTemplatePortalTypeWorkflowChainList())
+ for workflow_chain in workflow_chain_list:
+ portal_type, wkflow_id = workflow_chain.split(' | ')
+ if wkflow_id != workflow_id:
+ new_value.append(workflow_chain)
+ bt.edit(template_portal_type_workflow_chain_list=new_value)
+
+ def stepCreatePortalTypeRole(self, sequence=None, **kw):
+ """
+ Create portal type role
+ """
+ pt = self.getTypeTool()
+ object_id = sequence.get('object_ptype_id')
+ object_pt = pt._getOb(object_id)
+ object_pt.newContent(portal_type='Role Information',
+ title='Geek Role Definition',
+ description='A definition with non ascii chars éàè',
+ role_name_list=('geek_role_definition',),
+ role_category_list=('group/g1','function/f1'),
+ role_base_category_script_id='Base Category Script',
+ role_base_category_list=('group','site'))
+
+ sequence.edit(portal_type_role='geek_role_definition')
+
+ def stepAddPortalTypeRolesToBusinessTemplate(self, sequence=None, **kw):
+ """
+ Add type role to business template
+ """
+ bt = sequence.get('current_bt', None)
+ self.failUnless(bt is not None)
+ ptype_ids = []
+ ptype_ids.append(sequence.get('object_ptype_id', ''))
+ ptype_ids.append(sequence.get('module_ptype_id', ''))
+ self.assertEqual(len(ptype_ids), 2)
+ bt.edit(template_portal_type_roles_list=ptype_ids)
+
+ def stepCheckPortalTypeRoleExists(self, sequence=None, **kw):
+ """
+ Cehck that portal type role exist
+ """
+ pt = self.getTypeTool()
+ object_id = sequence.get('object_ptype_id')
+ role, = pt[object_id].getRoleInformationList()
+ self.assertEqual('Geek Role Definition', role.getTitle())
+ self.assertEqual(['geek_role_definition'], role.getRoleNameList())
+ self.assertEqual('A definition with non ascii chars éàè', role.getDescription())
+ self.assertEqual(['group/g1','function/f1'], role.getRoleCategoryList())
+ self.assertEqual(['group','site'], role.getRoleBaseCategoryList())
+ self.assertEqual('Base Category Script', role.getRoleBaseCategoryScriptId())
+
+ def stepModifyPortalType(self, sequence=None, **kw):
+ """
+ Modify Portal Type
+ """
+ pt = self.getTypeTool()
+ object_type = pt._getOb('Geek Object', None)
+ object_type.title = 'Modified %s' % object_type.title
+
+ def stepUnmodifyPortalType(self, sequence=None, **kw):
+ """
+ Unmodify Portal Type
+ """
+ pt = self.getTypeTool()
+ object_type = pt._getOb('Geek Object', None)
+ object_type.title = object_type.title[len('Modified '):]
+
+ def stepCheckModifiedPortalTypeExists(self, sequence=None, **kw):
+ """
+ Check presence of modified portal type
+ """
+ self.stepCheckPortalTypeExists(sequence=sequence, **kw)
+ pt = self.getTypeTool()
+ object_id = sequence.get('object_ptype_id')
+ object_type = pt._getOb(object_id, None)
+ self.failUnless(object_type.title.startswith('Modified '))
+
+ def stepCreateFakeZODBScript(self, sequence=None, **kw):
+ """Create a Script inside portal_skins
+ """
+ grain_of_sand = ''.join([random.choice(string.ascii_letters) for i in xrange(10)])
+ python_script_id = 'ERP5Site_dummyScriptWhichRandomId%s' % grain_of_sand
+ skin_folder_id = 'custom'
+ if getattr(self.portal.portal_skins, skin_folder_id, None) is None:
+ self.portal.portal_skins.manage_addProduct['OFSP'].manage_addFolder(skin_folder_id)
+ skin_folder = self.portal.portal_skins[skin_folder_id]
+ skin_folder.manage_addProduct['PythonScripts'].manage_addPythonScript(
+ id=python_script_id)
+ sequence.set('python_script_id', python_script_id)
+ sequence.set('skin_folder_id', skin_folder_id)
+
+ def stepAddCustomSkinFolderToBusinessTemplate(self, sequence=None, **kw):
+ """
+ Add types to business template
+ """
+ bt = sequence.get('current_bt', None)
+ self.failUnless(bt is not None)
+ template_skin_id_list = list(bt.getProperty('template_skin_id_list'))
+ template_skin_id_list.append('custom')
+ bt.edit(template_skin_id_list=template_skin_id_list)
+
+ def stepCheckFakeScriptIsDeleted(self, sequence=None, **kw):
+ """Check that script inside ZODB is deleted by BT reinstallation
+ """
+ python_script_id = sequence.get('python_script_id')
+ skin_folder_id = sequence.get('skin_folder_id')
+ folder = self.portal.portal_skins[skin_folder_id]
+ self.assertTrue(python_script_id not in folder.objectIds())
+
+ def stepSetOldSitePropertyValue(self, sequence=None, **kw):
+ """Set the old value to a site property."""
+ sequence.set('site_property_value', 'old')
+
+ def stepSetNewSitePropertyValue(self, sequence=None, **kw):
+ """Set the new value to a site property."""
+ sequence.set('site_property_value', 'new')
+
+ def stepCreateSiteProperty(self, sequence=None, **kw):
+ """Create a site property."""
+ portal = self.getPortal()
+ portal._setProperty('a_property', sequence.get('site_property_value'))
+
+ def stepModifySiteProperty(self, sequence=None, **kw):
+ """Modify a site property."""
+ portal = self.getPortal()
+ portal._updateProperty('a_property', sequence.get('site_property_value'))
+
+ def stepCheckSiteProperty(self, sequence=None, **kw):
+ """Check a site property."""
+ portal = self.getPortal()
+ self.assertEquals(portal.getProperty('a_property'),
+ sequence.get('site_property_value'))
+
+ def stepCheckSitePropertyRemoved(self, sequence=None, **kw):
+ """Check if a site property is removed."""
+ portal = self.getPortal()
+ self.failIf(portal.hasProperty('a_property'))
+
+ def stepAddSitePropertyToBusinessTemplate(self, sequence=None, **kw):
+ """Add a site property into a business template."""
+ bt = sequence.get('current_bt', None)
+ self.failUnless(bt is not None)
+ bt.edit(template_site_property_id_list=('a_property',))
+
+ def stepCheckSkinSelectionRemoved(self, sequence=None, **kw):
+ """
+ Check that a skin selection has been removed.
+ """
+ self.assertTrue('Foo' not in self.portal.portal_skins.getSkinSelections())
+
+ def stepCheckSkinSelectionNotRemoved(self, sequence=None, **kw):
+ """
+ Check that a skin selection has not been removed.
+ """
+ self.assertTrue('Foo' in self.portal.portal_skins.getSkinSelections())
+
+ def stepUserDisableSkinSelectionRegistration(self, sequence=None, **kw):
+ """
+ Simulate User disabling skin registration from UI.
+ """
+ self.app.REQUEST.set('your_register_skin_selection', 0)
+
+ def stepUserSelectSkinToBeChanged(self, sequence=None, **kw):
+ """
+ User selects skin to be changed from UI.
+ """
+ select_skin_to_be_changed_list = self.portal.portal_skins.getSkinSelections()[:1]
+ select_skin_not_to_be_changed_list = self.portal.portal_skins.getSkinSelections()[1:]
+ sequence.edit(select_skin_to_be_changed_list = select_skin_to_be_changed_list, \
+ select_skin_not_to_be_changed_list = select_skin_not_to_be_changed_list)
+ self.app.REQUEST.set('your_skin_layer_list', select_skin_to_be_changed_list)
+
+ def stepCheckUserSelectedSkinToBeChanged(self, sequence=None, **kw):
+ """
+ Check that only selected to be changed skins are affected.
+ """
+ skin_folder_id = sequence.get('skin_folder_id')
+ select_skin_to_be_changed_list = sequence.get('select_skin_to_be_changed_list')
+ select_skin_not_to_be_changed_list = sequence.get('select_skin_not_to_be_changed_list')
+ for skin_name in select_skin_to_be_changed_list:
+ self.assertTrue(skin_folder_id in self.portal.portal_skins.getSkinPath(skin_name))
+ for skin_name in select_skin_not_to_be_changed_list:
+ self.assertTrue(skin_folder_id not in self.portal.portal_skins.getSkinPath(skin_name))
+
+ def stepCheckSkinFolderPriorityOn(self, sequence=None, **kw):
+ """
+ Check skin folder priority
+ """
+ ps = self.portal.portal_skins
+ for skin in ps.getSkinSelections():
+ self.assertEquals('erp5_core', ps.getSkinPath(skin).split(',')[0])
+ self.assertEquals('erp5_geek', ps.getSkinPath(skin).split(',')[1])
+
+ def stepCheckSkinFolderPriorityOff(self, sequence=None, **kw):
+ """
+ Check skin folder priority off
+ """
+ ps = self.portal.portal_skins
+ for skin in ps.getSkinSelections():
+ self.assertEquals('erp5_geek', ps.getSkinPath(skin).split(',')[0])
+ self.assertEquals('erp5_core', ps.getSkinPath(skin).split(',')[1])
+
+ def stepUserDisableSkinFolderPriority(self, sequence=None, **kw):
+ """
+ User chooses skin folder priority off from UI
+ """
+ self.app.REQUEST.set('your_reorder_skin_selection', 0)
+
+ def stepSetExistingSkinFolderPriority(self, sequence=None, **kw):
+ """
+ Set exisitng skin priority for test
+ """
+ skin_folder = self.portal.portal_skins['erp5_core']
+ if not skin_folder.hasProperty('business_template_skin_layer_priority'):
+ skin_folder.manage_addProperty('business_template_skin_layer_priority', \
+ 10000.0, 'float')
+
+ def stepSetBusinessTemplateSkinFolderPriority(self, sequence=None, **kw):
+ """
+ Set skin folder priority.
+ """
+ skin_folder_id = sequence.get('skin_folder_id')
+ skin_folder = self.portal.portal_skins[skin_folder_id]
+ skin_folder.manage_addProperty('business_template_skin_layer_priority', 9999.0, 'float')
+
+ def stepModifySkinFolder(self, sequence=None, **kw):
+ """
+ Modify the skin folder
+ """
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ skin_folder = ps._getOb(skin_id, None)
+ skin_folder._setProperty(
+ 'business_template_skin_layer_priority',
+ 99, type='float')
+ # Make sure it is really set.
+ self.assertEquals(
+ 99, skin_folder.getProperty('business_template_skin_layer_priority'))
+
+ def stepUnmodifySkinFolder(self, sequence=None, **kw):
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ skin_folder = ps._getOb(skin_id, None)
+ skin_folder._delProperty('business_template_skin_layer_priority')
+ self.assertEquals(
+ None, skin_folder.getProperty('business_template_skin_layer_priority'))
+
+ def stepCheckModifiedSkinFolderExists(self, sequence=None, **kw):
+ """
+ Check modified skin folder
+ """
+ ps = self.getSkinsTool()
+ skin_id = sequence.get('skin_folder_id')
+ skin_folder = ps._getOb(skin_id, None)
+ self.assertEquals(
+ 99, skin_folder.getProperty('business_template_skin_layer_priority'))
+
+ def stepCreateDocument(self, sequence=None, **kw):
+ document_title = 'UnitTest'
+ document_data = """class UnitTest:
+ meta_type = 'ERP5 Unit Test'
+ portal_type = 'Unit Test'"""
+ cfg = getConfiguration()
+ file_path = os.path.join(cfg.instancehome, 'Document', document_title+'.py')
+ if os.path.exists(file_path):
+ os.remove(file_path)
+ f = file(file_path, 'w')
+ f.write(document_data)
+ f.close()
+ self.failUnless(os.path.exists(file_path))
+ sequence.edit(document_title=document_title, document_path=file_path,
+ document_data=document_data)
+
+ def stepAddDocumentToBusinessTemplate(self, sequence=None, **kw):
+ bt = sequence['current_bt']
+ bt.edit(template_document_id_list=[sequence['document_title']])
+
+ def stepRemoveDocument(self, sequence=None, **kw):
+ document_path = sequence['document_path']
+ os.remove(document_path)
+ self.failIf(os.path.exists(document_path))
+
+ def stepCheckDocumentExists(self, sequence=None, **kw):
+ self.failIf(not os.path.exists(sequence['document_path']))
+
+ def stepCheckDocumentRemoved(self, sequence=None, **kw):
+ self.failIf(os.path.exists(sequence['document_path']))
+
+ def stepCreateTest(self, sequence=None, **kw):
+ test_title = 'UnitTest'
+ test_data = """class UnitTest:
+ pass"""
+ cfg = getConfiguration()
+ file_path = os.path.join(cfg.instancehome, 'tests', test_title+'.py')
+ if os.path.exists(file_path):
+ os.remove(file_path)
+ f = file(file_path, 'w')
+ f.write(test_data)
+ f.close()
+ self.failUnless(os.path.exists(file_path))
+ sequence.edit(test_title=test_title, test_path=file_path,
+ test_data=test_data)
+
+ def stepAddTestToBusinessTemplate(self, sequence=None, **kw):
+ bt = sequence['current_bt']
+ bt.edit(template_test_id_list=[sequence['test_title']])
+
+ def stepRemoveTest(self, sequence=None, **kw):
+ test_path = sequence['test_path']
+ os.remove(test_path)
+ self.failIf(os.path.exists(test_path))
+
+ def stepCheckTestExists(self, sequence=None, **kw):
+ self.failIf(not os.path.exists(sequence['test_path']))
+
+ def stepCheckTestRemoved(self, sequence=None, **kw):
+ self.failIf(os.path.exists(sequence['test_path']))
+
+ def stepCheckDocumentPropertySheetSameName(self, sequence=None, **kw):
+ self.assertEqual(sequence['ps_title'], sequence['document_title'])
+ self.assertEqual(os.path.basename(sequence['document_path']),
+ os.path.basename(sequence['ps_path']))
+
+ def stepCheckDocumentTestSameName(self, sequence=None, **kw):
+ self.assertEqual(sequence['test_title'], sequence['document_title'])
+ self.assertEqual(os.path.basename(sequence['document_path']),
+ os.path.basename(sequence['test_path']))
+
+ save_current_business_template_sequence_string = '\
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ '
+
+ def stepRemovePropertySheetFromBusinessTemplate(self, sequence=None, **kw):
+ """
+ Add Property Sheet to Business Template
+ """
+ sequence['current_bt'].edit(template_property_sheet_id_list=[])
+
+ def stepRemoveTestFromBusinessTemplate(self, sequence=None, **kw):
+ """
+ Add Property Sheet to Business Template
+ """
+ sequence['current_bt'].edit(template_test_id_list=[])
+
+ def stepCreateAllPropertySheetsFromFilesystem(self, sequence=None, **kw):
+ self.portal.portal_property_sheets.createAllPropertySheetsFromFilesystem()
+
+ def stepRemovePropertySheetZodbOnly(self, sequence=None, **kw):
+ """
+ Remove Property Sheet, but only from ZODB
+ """
+ self.portal.portal_property_sheets.manage_delObjects([sequence['ps_title']])
+
+ def stepCheckDraftBuildingState(self, sequence=None, **kw):
+ self.assertEquals(sequence['current_bt'].getBuildingState(), 'draft')
+
+ def stepSimulateAndCopyPrePropertySheetMigrationBusinessTemplate(self, sequence=None, **kw):
+ portal = self.getPortalObject()
+ template_tool = portal.portal_templates
+ current_bt = sequence['current_bt']
+ cb_data = template_tool.manage_copyObjects([current_bt.getId()])
+ copied, = template_tool.manage_pasteObjects(cb_data)
+ current = current_bt._property_sheet_item._objects.copy()
+ current_bt._property_sheet_item._objects = PersistentMapping()
+ for k,v in current.iteritems():
+ k = k.lstrip('portal_property_sheets/')
+ current_bt._property_sheet_item._objects[k] = v
+ sequence.edit(current_bt=template_tool._getOb(copied['new_id']))
+
+
+class TestBusinessTemplate(BusinessTemplateMixin):
+ """
+ Test these operations:
+
+ - Create a template
+
+ - Install a template
+
+ - Uninstall a template
+
+ - Upgrade a template
+ """
+
+ def getTitle(self):
+ return "Business Template"
+
+ # tests
+ def test_Title(self):
+ """Tests the Title of the Template Tool."""
+ self.assertEquals('Template Tool', self.getTemplateTool().Title())
+
+ def test_01_checkNewSite(self):
+ """Test Check New Site"""
+ sequence_list = SequenceList()
+ sequence_string = '\
+ UseCoreBusinessTemplate \
+ CheckTools \
+ CheckBuiltBuildingState \
+ CheckInstalledInstallationState \
+ CheckSkinsLayers \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ # test of portal types
+ def test_02_BusinessTemplateWithPortalTypes(self):
+ """Test Business Template With Portal Types"""
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreatePortalType \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddPortalTypeToBusinessTemplate \
+ FillPortalTypesFields \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ RemovePortalType \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckInstalledInstallationState \
+ CheckBuiltBuildingState \
+ CheckNoTrashBin \
+ CheckSkinsLayers \
+ CheckPortalTypeExists \
+ CreateSecondBusinessTemplate \
+ UseSecondBusinessTemplate \
+ AddPortalTypeToBusinessTemplate \
+ FillPortalTypesFields \
+ ModifyPortalTypeInBusinessTemplate \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckInstalledInstallationState \
+ CheckBuiltBuildingState \
+ CheckSkinsLayers \
+ CheckPortalTypeExists \
+ UninstallBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckPortalTypeRemoved \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ def test_021_BusinessTemplateWithPortalTypesAndWrongValues(self):
+ """Test Business Template With Portal Types and Bad Values"""
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreatePortalType \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddPortalTypeToBusinessTemplate \
+ FillPortalTypesFields \
+ FillWrongPortalTypesFields \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckBuildWithBadPortalTypeFailed \
+ RemovePortalType \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ # test of skins
+ def test_03_BusinessTemplateWithSkins(self):
+ """Test Business Template With Skin Folder"""
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreateSkinFolder \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddSkinFolderToBusinessTemplate \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ RemoveSkinFolder \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckInstalledInstallationState \
+ CheckBuiltBuildingState \
+ CheckNoTrashBin \
+ CheckSkinsLayers \
+ CheckSkinFolderExists \
+ UninstallBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckSkinFolderRemoved \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ # test of workflow
+ def test_04_BusinessTemplateWithWorkflow(self):
+ """Test Business Template With Workflow"""
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreatePortalType \
+ CreateWorkflow \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddWorkflowToBusinessTemplate \
+ AddWorkflowChainToBusinessTemplate \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ RemoveWorkflow \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckInstalledInstallationState \
+ CheckBuiltBuildingState \
+ CheckNoTrashBin \
+ CheckSkinsLayers \
+ CheckWorkflowExists \
+ UninstallBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckWorkflowRemoved \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ def test_041_BusinessTemplateWithWorkflowRemoved(self):
+ """Test Business Template With Remove Of Workflow"""
+ sequence_list = SequenceList()
+ sequence_string = '\
CreatePortalType \
CreateWorkflow \
CreateNewBusinessTemplate \
@@ -5002,123 +5548,62 @@ class TestBusinessTemplate(ERP5TypeTestC
CheckCatalogMethodExists \
AddKeysAndTableToBusinessTemplate \
BuildBusinessTemplate \
- SaveBusinessTemplate \
- ChangePreviousCatalogMethod \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- PartialCatalogMethodInstall \
- CheckCatalogMethodChangeKept \
- RemoveKeysAndTable \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
-
- def test_32_BusinessTemplateWithDuplicatedPortalTypes(self):
- """Test Business Template With Duplicated Portal Types"""
- sequence_list = SequenceList()
- sequence_string = '\
- CreatePortalType \
- CreateFirstAction \
- CreateSecondAction \
- CreateWorkflow \
- CreateNewBusinessTemplate \
- UseExportBusinessTemplate \
- AddPortalTypeToBusinessTemplate \
- AddWorkflowToBusinessTemplate \
- AddWorkflowChainToBusinessTemplate \
- AddSecondActionToBusinessTemplate \
- FillPortalTypesFields \
- BuildBusinessTemplate \
- SaveBusinessTemplate \
- RemovePortalType \
- RemoveWorkflow \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- InstallBusinessTemplate \
- Tic \
- \
- CreateDuplicatedBusinessTemplate \
- UseExportBusinessTemplate \
- AddDuplicatedPortalTypeToBusinessTemplate \
- BuildBusinessTemplate \
- SaveBusinessTemplate \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- InstallDuplicatedBusinessTemplate \
- Tic \
- \
- CheckPortalTypeExists \
- CheckSecondActionExists \
- \
- UninstallBusinessTemplate \
- CheckDuplicatedPortalTypeRemoved \
- UninstallPreviousBusinessTemplate \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
-
- def stepSetSkinFolderRegistredSelections(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- skin_folder = ps._getOb(skin_id, None)
- skin_folder._setProperty(
- 'business_template_registered_skin_selections', ('Foo',),
- type='tokens')
-
- def stepSetSkinFolderRegistredSelections2(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- skin_folder = ps._getOb(skin_id, None)
- skin_folder._updateProperty(
- 'business_template_registered_skin_selections', ('Foo', 'Bar',))
-
- def stepCreateSkinSelection(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- ps.manage_skinLayers(skinpath=('erp5_core',), skinname='Foo', add_skin=1)
-
- def stepSetStaticSkinFolderRegistredSelections(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- skin_id = sequence.get('static_skin_folder_id')
- skin_folder = ps._getOb(skin_id, None)
- skin_folder._setProperty(
- 'business_template_registered_skin_selections', ('Foo',),
- type='tokens')
- selection = ps.getSkinPath('Foo')
- selection = selection.split(',')
- if skin_id not in selection:
- selection.append(skin_id)
- ps.manage_skinLayers(skinpath=tuple(selection),
- skinname='Foo', add_skin=1)
-
- def stepCheckSkinSelectionAdded(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- # a new skin selection is added
- self.assertTrue('Foo' in ps.getSkinSelections())
- # and it contains good layers
- layers = ps.getSkinPath('Foo').split(',')
- self.assertTrue(skin_id in layers, layers)
- self.assertTrue('erp5_core' in layers, layers)
- self.assertFalse('erp5_xhtml_style' in layers, layers)
- skin_folder = ps._getOb(skin_id, None)
- skin_selection_list = skin_folder.getProperty(
- 'business_template_registered_skin_selections', ())
- self.assertTrue('Foo' in skin_selection_list)
-
- def stepCheckStaticSkinSelection(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- static_skin_id = sequence.get('static_skin_folder_id')
- # a new skin selection is added
- self.assertTrue('Foo' in ps.getSkinSelections())
- # and it contains good layers
- layers = ps.getSkinPath('Foo').split(',')
- self.assertTrue(skin_id in layers, layers)
- self.assertTrue('erp5_core' in layers, layers)
- self.assertFalse('erp5_xhtml_style' in layers, layers)
- self.assertTrue(static_skin_id in layers, layers)
+ SaveBusinessTemplate \
+ ChangePreviousCatalogMethod \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ PartialCatalogMethodInstall \
+ CheckCatalogMethodChangeKept \
+ RemoveKeysAndTable \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ def test_32_BusinessTemplateWithDuplicatedPortalTypes(self):
+ """Test Business Template With Duplicated Portal Types"""
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreatePortalType \
+ CreateFirstAction \
+ CreateSecondAction \
+ CreateWorkflow \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddPortalTypeToBusinessTemplate \
+ AddWorkflowToBusinessTemplate \
+ AddWorkflowChainToBusinessTemplate \
+ AddSecondActionToBusinessTemplate \
+ FillPortalTypesFields \
+ BuildBusinessTemplate \
+ SaveBusinessTemplate \
+ RemovePortalType \
+ RemoveWorkflow \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ InstallBusinessTemplate \
+ Tic \
+ \
+ CreateDuplicatedBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddDuplicatedPortalTypeToBusinessTemplate \
+ BuildBusinessTemplate \
+ SaveBusinessTemplate \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ InstallDuplicatedBusinessTemplate \
+ Tic \
+ \
+ CheckPortalTypeExists \
+ CheckSecondActionExists \
+ \
+ UninstallBusinessTemplate \
+ CheckDuplicatedPortalTypeRemoved \
+ UninstallPreviousBusinessTemplate \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
def test_33_BusinessTemplateWithNewSkinSelection(self):
"""Test Business Template With New Skin Selection"""
@@ -5501,86 +5986,6 @@ class TestBusinessTemplate(ERP5TypeTestC
self.assertNotEqual(new_bt, newer_bt)
self.assertEqual(newer_bt.getRevision(), second_revision)
- def stepCreateCustomWorkflow(self, sequence=None, **kw):
- """
- Create a custom workflow
- """
- wf_id = 'custom_geek_workflow'
- pw = self.getWorkflowTool()
- addWorkflowByType(pw, WORKFLOW_TYPE, wf_id)
- workflow = pw._getOb(wf_id, None)
- self.failUnless(workflow is not None)
- sequence.edit(workflow_id=workflow.getId())
- 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)
- key = 'chain_Geek Object'
- if props.has_key(key):
- props[key] = '%s,%s' % (props[key], wf_id)
- else:
- props[key] = wf_id
- pw.manage_changeWorkflows('', props=props)
-
- def stepCreateCustomBusinessTemplate(self, sequence=None, **kw):
- """
- Create a custom Business Template
- """
- pt = self.getTemplateTool()
- template = pt.newContent(portal_type='Business Template')
- self.failUnless(template.getBuildingState() == 'draft')
- self.failUnless(template.getInstallationState() == 'not_installed')
- template.edit(title='custom geek template',
- version='1.0',
- description='custom bt for unit_test')
- sequence.edit(export_bt=template)
-
- def stepCheckCustomWorkflowChain(self, sequence=None, **kw):
- """
- Check custom workflow chain
- """
- present = 0
- pw = self.getWorkflowTool()
- cbt = pw._chains_by_type
- if cbt is not None:
- for id, wf_ids in cbt.items():
- if id == "Geek Object":
- present = 1
- self.assertEqual(present, 1)
- self.assertSameSet(cbt['Geek Object'],
- ('geek_workflow', 'custom_geek_workflow'))
-
- def stepCheckOriginalWorkflowChain(self, sequence=None, **kw):
- """
- Check original workflow chain
- """
- present = 0
- pw = self.getWorkflowTool()
- cbt = pw._chains_by_type
- if cbt is not None:
- for id, wf_ids in cbt.items():
- if id == "Geek Object":
- present = 1
- self.assertEqual(present, 1)
- self.assertSameSet(cbt['Geek Object'],
- ('geek_workflow', ))
-
- def stepCheckEmptyWorkflowChain(self, sequence=None, **kw):
- """
- Check that workflow chain is empty
- """
- present = 0
- pw = self.getWorkflowTool()
- cbt = pw._chains_by_type
- if cbt is not None:
- for id, wf_ids in cbt.items():
- if id == "Geek Object":
- present = 1
- break
- if present:
- self.assertEqual(0, len(wf_ids))
-
def test_34_RemovePartialWorkflowChain(self):
"""Test Remove Chain"""
sequence_list = SequenceList()
@@ -5640,42 +6045,6 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
- def stepCopyBusinessTemplate(self, sequence=None, **kw):
- """
- Copy business template
- """
- portal = self.getPortalObject()
- template_tool = portal.portal_templates
- import_bt = sequence.get('current_bt')
- cb_data = template_tool.manage_copyObjects([import_bt.getId()])
- copied, = template_tool.manage_pasteObjects(cb_data)
- sequence.edit(current_bt=template_tool._getOb(copied['new_id']))
-
- def stepRemoveWorkflowFromBusinessTemplate(self, sequence=None, **kw):
- """
- Remove workflow to business template
- """
- bt = sequence.get('current_bt', None)
- self.failUnless(bt is not None)
- current_twi = list(bt.getTemplateWorkflowIdList())
- current_twi.remove(sequence.get('workflow_id', ''))
- bt.edit(template_workflow_id_list=current_twi)
-
- def stepRemoveWorkflowChainFromBusinessTemplate(self, sequence=None, **kw):
- """
- Remove workflow chain to business template
- """
- bt = sequence.get('current_bt', None)
- self.failUnless(bt is not None)
- workflow_id = sequence.get('workflow_id', '')
- new_value = []
- workflow_chain_list = list(bt.getTemplatePortalTypeWorkflowChainList())
- for workflow_chain in workflow_chain_list:
- portal_type, wkflow_id = workflow_chain.split(' | ')
- if wkflow_id != workflow_id:
- new_value.append(workflow_chain)
- bt.edit(template_portal_type_workflow_chain_list=new_value)
-
def test_35_UpdatePartialWorkflowChain(self):
"""Test Update Workflow Chain"""
sequence_list = SequenceList()
@@ -5779,90 +6148,47 @@ class TestBusinessTemplate(ERP5TypeTestC
CheckBuiltBuildingState \
CheckNotInstalledInstallationState \
InstallBusinessTemplate \
- CheckOriginalWorkflowChain \
- Tic \
- \
- CopyBusinessTemplate \
- Tic \
- \
- CreateCustomWorkflow \
- CheckCustomWorkflowChain \
- AppendWorkflowToBusinessTemplate \
- AppendWorkflowChainToBusinessTemplate \
- BuildBusinessTemplate \
- SaveBusinessTemplate \
- RemoveWorkflow \
- CheckOriginalWorkflowChain \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- InstallBusinessTemplate \
- Tic \
- \
- CheckCustomWorkflowChain \
- \
- CopyBusinessTemplate \
- Tic \
- \
- RemoveWorkflowFromBusinessTemplate \
- RemoveWorkflowChainFromBusinessTemplate \
- BuildBusinessTemplate \
- CheckBuiltBuildingState \
- SaveBusinessTemplate \
- ImportBusinessTemplate \
- Tic \
- UseImportBusinessTemplate \
- InstallBusinessTemplate \
- Tic \
- CheckOriginalWorkflowChain \
- CheckWorkflowChainExists \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
-
- def stepCreatePortalTypeRole(self, sequence=None, **kw):
- """
- Create portal type role
- """
- pt = self.getTypeTool()
- object_id = sequence.get('object_ptype_id')
- object_pt = pt._getOb(object_id)
- object_pt.newContent(portal_type='Role Information',
- title='Geek Role Definition',
- description='A definition with non ascii chars éàè',
- role_name_list=('geek_role_definition',),
- role_category_list=('group/g1','function/f1'),
- role_base_category_script_id='Base Category Script',
- role_base_category_list=('group','site'))
-
- sequence.edit(portal_type_role='geek_role_definition')
-
- def stepAddPortalTypeRolesToBusinessTemplate(self, sequence=None, **kw):
- """
- Add type role to business template
- """
- bt = sequence.get('current_bt', None)
- self.failUnless(bt is not None)
- ptype_ids = []
- ptype_ids.append(sequence.get('object_ptype_id', ''))
- ptype_ids.append(sequence.get('module_ptype_id', ''))
- self.assertEqual(len(ptype_ids), 2)
- bt.edit(template_portal_type_roles_list=ptype_ids)
-
- def stepCheckPortalTypeRoleExists(self, sequence=None, **kw):
- """
- Cehck that portal type role exist
- """
- pt = self.getTypeTool()
- object_id = sequence.get('object_ptype_id')
- role, = pt[object_id].getRoleInformationList()
- self.assertEqual('Geek Role Definition', role.getTitle())
- self.assertEqual(['geek_role_definition'], role.getRoleNameList())
- self.assertEqual('A definition with non ascii chars éàè', role.getDescription())
- self.assertEqual(['group/g1','function/f1'], role.getRoleCategoryList())
- self.assertEqual(['group','site'], role.getRoleBaseCategoryList())
- self.assertEqual('Base Category Script', role.getRoleBaseCategoryScriptId())
+ CheckOriginalWorkflowChain \
+ Tic \
+ \
+ CopyBusinessTemplate \
+ Tic \
+ \
+ CreateCustomWorkflow \
+ CheckCustomWorkflowChain \
+ AppendWorkflowToBusinessTemplate \
+ AppendWorkflowChainToBusinessTemplate \
+ BuildBusinessTemplate \
+ SaveBusinessTemplate \
+ RemoveWorkflow \
+ CheckOriginalWorkflowChain \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ InstallBusinessTemplate \
+ Tic \
+ \
+ CheckCustomWorkflowChain \
+ \
+ CopyBusinessTemplate \
+ Tic \
+ \
+ RemoveWorkflowFromBusinessTemplate \
+ RemoveWorkflowChainFromBusinessTemplate \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ SaveBusinessTemplate \
+ ImportBusinessTemplate \
+ Tic \
+ UseImportBusinessTemplate \
+ InstallBusinessTemplate \
+ Tic \
+ CheckOriginalWorkflowChain \
+ CheckWorkflowChainExists \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
def test_36_CheckPortalTypeRoles(self):
"""Test Portal Type Roles"""
@@ -5904,32 +6230,6 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
- def stepModifyPortalType(self, sequence=None, **kw):
- """
- Modify Portal Type
- """
- pt = self.getTypeTool()
- object_type = pt._getOb('Geek Object', None)
- object_type.title = 'Modified %s' % object_type.title
-
- def stepUnmodifyPortalType(self, sequence=None, **kw):
- """
- Unmodify Portal Type
- """
- pt = self.getTypeTool()
- object_type = pt._getOb('Geek Object', None)
- object_type.title = object_type.title[len('Modified '):]
-
- def stepCheckModifiedPortalTypeExists(self, sequence=None, **kw):
- """
- Check presence of modified portal type
- """
- self.stepCheckPortalTypeExists(sequence=sequence, **kw)
- pt = self.getTypeTool()
- object_id = sequence.get('object_ptype_id')
- object_type = pt._getOb(object_id, None)
- self.failUnless(object_type.title.startswith('Modified '))
-
def test_37_UpdatePortalType(self):
"""Test Update Portal Type"""
sequence_list = SequenceList()
@@ -5982,38 +6282,6 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
- def stepCreateFakeZODBScript(self, sequence=None, **kw):
- """Create a Script inside portal_skins
- """
- grain_of_sand = ''.join([random.choice(string.ascii_letters) for i in xrange(10)])
- python_script_id = 'ERP5Site_dummyScriptWhichRandomId%s' % grain_of_sand
- skin_folder_id = 'custom'
- if getattr(self.portal.portal_skins, skin_folder_id, None) is None:
- self.portal.portal_skins.manage_addProduct['OFSP'].manage_addFolder(skin_folder_id)
- skin_folder = self.portal.portal_skins[skin_folder_id]
- skin_folder.manage_addProduct['PythonScripts'].manage_addPythonScript(
- id=python_script_id)
- sequence.set('python_script_id', python_script_id)
- sequence.set('skin_folder_id', skin_folder_id)
-
- def stepAddCustomSkinFolderToBusinessTemplate(self, sequence=None, **kw):
- """
- Add types to business template
- """
- bt = sequence.get('current_bt', None)
- self.failUnless(bt is not None)
- template_skin_id_list = list(bt.getProperty('template_skin_id_list'))
- template_skin_id_list.append('custom')
- bt.edit(template_skin_id_list=template_skin_id_list)
-
- def stepCheckFakeScriptIsDeleted(self, sequence=None, **kw):
- """Check that script inside ZODB is deleted by BT reinstallation
- """
- python_script_id = sequence.get('python_script_id')
- skin_folder_id = sequence.get('skin_folder_id')
- folder = self.portal.portal_skins[skin_folder_id]
- self.assertTrue(python_script_id not in folder.objectIds())
-
def test_38_CheckReinstallation(self):
"""Test Reinstallation"""
sequence_list = SequenceList()
@@ -6047,122 +6315,6 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
- def stepSetOldSitePropertyValue(self, sequence=None, **kw):
- """Set the old value to a site property."""
- sequence.set('site_property_value', 'old')
-
- def stepSetNewSitePropertyValue(self, sequence=None, **kw):
- """Set the new value to a site property."""
- sequence.set('site_property_value', 'new')
-
- def stepCreateSiteProperty(self, sequence=None, **kw):
- """Create a site property."""
- portal = self.getPortal()
- portal._setProperty('a_property', sequence.get('site_property_value'))
-
- def stepModifySiteProperty(self, sequence=None, **kw):
- """Modify a site property."""
- portal = self.getPortal()
- portal._updateProperty('a_property', sequence.get('site_property_value'))
-
- def stepCheckSiteProperty(self, sequence=None, **kw):
- """Check a site property."""
- portal = self.getPortal()
- self.assertEquals(portal.getProperty('a_property'),
- sequence.get('site_property_value'))
-
- def stepCheckSitePropertyRemoved(self, sequence=None, **kw):
- """Check if a site property is removed."""
- portal = self.getPortal()
- self.failIf(portal.hasProperty('a_property'))
-
- def stepAddSitePropertyToBusinessTemplate(self, sequence=None, **kw):
- """Add a site property into a business template."""
- bt = sequence.get('current_bt', None)
- self.failUnless(bt is not None)
- bt.edit(template_site_property_id_list=('a_property',))
-
- def stepCheckSkinSelectionRemoved(self, sequence=None, **kw):
- """
- Check that a skin selection has been removed.
- """
- self.assertTrue('Foo' not in self.portal.portal_skins.getSkinSelections())
-
- def stepCheckSkinSelectionNotRemoved(self, sequence=None, **kw):
- """
- Check that a skin selection has not been removed.
- """
- self.assertTrue('Foo' in self.portal.portal_skins.getSkinSelections())
-
- def stepUserDisableSkinSelectionRegistration(self, sequence=None, **kw):
- """
- Simulate User disabling skin registration from UI.
- """
- self.app.REQUEST.set('your_register_skin_selection', 0)
-
- def stepUserSelectSkinToBeChanged(self, sequence=None, **kw):
- """
- User selects skin to be changed from UI.
- """
- select_skin_to_be_changed_list = self.portal.portal_skins.getSkinSelections()[:1]
- select_skin_not_to_be_changed_list = self.portal.portal_skins.getSkinSelections()[1:]
- sequence.edit(select_skin_to_be_changed_list = select_skin_to_be_changed_list, \
- select_skin_not_to_be_changed_list = select_skin_not_to_be_changed_list)
- self.app.REQUEST.set('your_skin_layer_list', select_skin_to_be_changed_list)
-
- def stepCheckUserSelectedSkinToBeChanged(self, sequence=None, **kw):
- """
- Check that only selected to be changed skins are affected.
- """
- skin_folder_id = sequence.get('skin_folder_id')
- select_skin_to_be_changed_list = sequence.get('select_skin_to_be_changed_list')
- select_skin_not_to_be_changed_list = sequence.get('select_skin_not_to_be_changed_list')
- for skin_name in select_skin_to_be_changed_list:
- self.assertTrue(skin_folder_id in self.portal.portal_skins.getSkinPath(skin_name))
- for skin_name in select_skin_not_to_be_changed_list:
- self.assertTrue(skin_folder_id not in self.portal.portal_skins.getSkinPath(skin_name))
-
- def stepCheckSkinFolderPriorityOn(self, sequence=None, **kw):
- """
- Check skin folder priority
- """
- ps = self.portal.portal_skins
- for skin in ps.getSkinSelections():
- self.assertEquals('erp5_core', ps.getSkinPath(skin).split(',')[0])
- self.assertEquals('erp5_geek', ps.getSkinPath(skin).split(',')[1])
-
- def stepCheckSkinFolderPriorityOff(self, sequence=None, **kw):
- """
- Check skin folder priority off
- """
- ps = self.portal.portal_skins
- for skin in ps.getSkinSelections():
- self.assertEquals('erp5_geek', ps.getSkinPath(skin).split(',')[0])
- self.assertEquals('erp5_core', ps.getSkinPath(skin).split(',')[1])
-
- def stepUserDisableSkinFolderPriority(self, sequence=None, **kw):
- """
- User chooses skin folder priority off from UI
- """
- self.app.REQUEST.set('your_reorder_skin_selection', 0)
-
- def stepSetExistingSkinFolderPriority(self, sequence=None, **kw):
- """
- Set exisitng skin priority for test
- """
- skin_folder = self.portal.portal_skins['erp5_core']
- if not skin_folder.hasProperty('business_template_skin_layer_priority'):
- skin_folder.manage_addProperty('business_template_skin_layer_priority', \
- 10000.0, 'float')
-
- def stepSetBusinessTemplateSkinFolderPriority(self, sequence=None, **kw):
- """
- Set skin folder priority.
- """
- skin_folder_id = sequence.get('skin_folder_id')
- skin_folder = self.portal.portal_skins[skin_folder_id]
- skin_folder.manage_addProperty('business_template_skin_layer_priority', 9999.0, 'float')
-
def test_39_CheckSiteProperties(self):
"""Test Site Properties"""
sequence_list = SequenceList()
@@ -6368,47 +6520,15 @@ class TestBusinessTemplate(ERP5TypeTestC
BuildBusinessTemplate \
SaveBusinessTemplate \
RemoveSkinFolder \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- UserDisableSkinFolderPriority \
- InstallBusinessTemplate \
- Tic \
- CheckSkinFolderPriorityOff \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
-
- def stepModifySkinFolder(self, sequence=None, **kw):
- """
- Modify the skin folder
- """
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- skin_folder = ps._getOb(skin_id, None)
- skin_folder._setProperty(
- 'business_template_skin_layer_priority',
- 99, type='float')
- # Make sure it is really set.
- self.assertEquals(
- 99, skin_folder.getProperty('business_template_skin_layer_priority'))
-
- def stepUnmodifySkinFolder(self, sequence=None, **kw):
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- skin_folder = ps._getOb(skin_id, None)
- skin_folder._delProperty('business_template_skin_layer_priority')
- self.assertEquals(
- None, skin_folder.getProperty('business_template_skin_layer_priority'))
-
- def stepCheckModifiedSkinFolderExists(self, sequence=None, **kw):
- """
- Check modified skin folder
- """
- ps = self.getSkinsTool()
- skin_id = sequence.get('skin_folder_id')
- skin_folder = ps._getOb(skin_id, None)
- self.assertEquals(
- 99, skin_folder.getProperty('business_template_skin_layer_priority'))
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ UserDisableSkinFolderPriority \
+ InstallBusinessTemplate \
+ Tic \
+ CheckSkinFolderPriorityOff \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
def test_163_UpdateSkinFolderWithRegisteredSkinSelection(self):
"""Test Update Skin Folder"""
@@ -6897,118 +7017,6 @@ class TestBusinessTemplate(ERP5TypeTestC
new_bt5_obj.build()
template_tool.export(new_bt5_obj)
- def stepCreateDocument(self, sequence=None, **kw):
- document_title = 'UnitTest'
- document_data = """class UnitTest:
- meta_type = 'ERP5 Unit Test'
- portal_type = 'Unit Test'"""
- cfg = getConfiguration()
- file_path = os.path.join(cfg.instancehome, 'Document', document_title+'.py')
- if os.path.exists(file_path):
- os.remove(file_path)
- f = file(file_path, 'w')
- f.write(document_data)
- f.close()
- self.failUnless(os.path.exists(file_path))
- sequence.edit(document_title=document_title, document_path=file_path,
- document_data=document_data)
-
- def stepAddDocumentToBusinessTemplate(self, sequence=None, **kw):
- bt = sequence['current_bt']
- bt.edit(template_document_id_list=[sequence['document_title']])
-
- def stepRemoveDocument(self, sequence=None, **kw):
- document_path = sequence['document_path']
- os.remove(document_path)
- self.failIf(os.path.exists(document_path))
-
- def stepCheckDocumentExists(self, sequence=None, **kw):
- self.failIf(not os.path.exists(sequence['document_path']))
-
- def stepCheckDocumentRemoved(self, sequence=None, **kw):
- self.failIf(os.path.exists(sequence['document_path']))
-
- def stepCreateTest(self, sequence=None, **kw):
- test_title = 'UnitTest'
- test_data = """class UnitTest:
- pass"""
- cfg = getConfiguration()
- file_path = os.path.join(cfg.instancehome, 'tests', test_title+'.py')
- if os.path.exists(file_path):
- os.remove(file_path)
- f = file(file_path, 'w')
- f.write(test_data)
- f.close()
- self.failUnless(os.path.exists(file_path))
- sequence.edit(test_title=test_title, test_path=file_path,
- test_data=test_data)
-
- def stepAddTestToBusinessTemplate(self, sequence=None, **kw):
- bt = sequence['current_bt']
- bt.edit(template_test_id_list=[sequence['test_title']])
-
- def stepRemoveTest(self, sequence=None, **kw):
- test_path = sequence['test_path']
- os.remove(test_path)
- self.failIf(os.path.exists(test_path))
-
- def stepCheckTestExists(self, sequence=None, **kw):
- self.failIf(not os.path.exists(sequence['test_path']))
-
- def stepCheckTestRemoved(self, sequence=None, **kw):
- self.failIf(os.path.exists(sequence['test_path']))
-
- def stepCheckDocumentPropertySheetSameName(self, sequence=None, **kw):
- self.assertEqual(sequence['ps_title'], sequence['document_title'])
- self.assertEqual(os.path.basename(sequence['document_path']),
- os.path.basename(sequence['ps_path']))
-
- def stepCheckDocumentTestSameName(self, sequence=None, **kw):
- self.assertEqual(sequence['test_title'], sequence['document_title'])
- self.assertEqual(os.path.basename(sequence['document_path']),
- os.path.basename(sequence['test_path']))
-
- save_current_business_template_sequence_string = '\
- CheckNotInstalledInstallationState \
- BuildBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckObjectPropertiesInBusinessTemplate \
- SaveBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- '
- def test_BusinessTemplateWithDocument(self):
- sequence_list = SequenceList()
- sequence_string = '\
- CreateDocument \
- CreateNewBusinessTemplate \
- UseExportBusinessTemplate \
- AddDocumentToBusinessTemplate \
- CheckModifiedBuildingState \
- ' + self.save_current_business_template_sequence_string + '\
- RemoveDocument \
- RemoveBusinessTemplate \
- RemoveAllTrashBins \
- ImportBusinessTemplate \
- UseImportBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- InstallBusinessTemplate \
- Tic \
- CheckInstalledInstallationState \
- CheckBuiltBuildingState \
- CheckNoTrashBin \
- CheckSkinsLayers \
- CheckDocumentExists \
- UninstallBusinessTemplate \
- CheckBuiltBuildingState \
- CheckNotInstalledInstallationState \
- CheckDocumentRemoved \
- '
- sequence_list.addSequenceString(sequence_string)
- sequence_list.play(self)
-
def test_BusinessTemplateWithTest(self):
sequence_list = SequenceList()
sequence_string = '\
@@ -7040,18 +7048,6 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
- def stepRemovePropertySheetFromBusinessTemplate(self, sequence=None, **kw):
- """
- Add Property Sheet to Business Template
- """
- sequence['current_bt'].edit(template_property_sheet_id_list=[])
-
- def stepRemoveTestFromBusinessTemplate(self, sequence=None, **kw):
- """
- Add Property Sheet to Business Template
- """
- sequence['current_bt'].edit(template_test_id_list=[])
-
def test_BusinessTemplateWithDocumentTestRemoved(self):
"""Checks that if Business Template defines Document and Test
Document is not removed"""
@@ -7103,31 +7099,6 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
- def stepCreateAllPropertySheetsFromFilesystem(self, sequence=None, **kw):
- self.portal.portal_property_sheets.createAllPropertySheetsFromFilesystem()
-
- def stepRemovePropertySheetZodbOnly(self, sequence=None, **kw):
- """
- Remove Property Sheet, but only from ZODB
- """
- self.portal.portal_property_sheets.manage_delObjects([sequence['ps_title']])
-
- def stepCheckDraftBuildingState(self, sequence=None, **kw):
- self.assertEquals(sequence['current_bt'].getBuildingState(), 'draft')
-
- def stepSimulateAndCopyPrePropertySheetMigrationBusinessTemplate(self, sequence=None, **kw):
- portal = self.getPortalObject()
- template_tool = portal.portal_templates
- current_bt = sequence['current_bt']
- cb_data = template_tool.manage_copyObjects([current_bt.getId()])
- copied, = template_tool.manage_pasteObjects(cb_data)
- current = current_bt._property_sheet_item._objects.copy()
- current_bt._property_sheet_item._objects = PersistentMapping()
- for k,v in current.iteritems():
- k = k.lstrip('portal_property_sheets/')
- current_bt._property_sheet_item._objects[k] = v
- sequence.edit(current_bt=template_tool._getOb(copied['new_id']))
-
def test_BusinessTemplateWithDocumentPropertySheetMigrated(self):
"""Checks that if Business Template defines Document and PropertySheet
Document is not removed after Property Sheet was migrated and Business Template
@@ -7190,8 +7161,125 @@ class TestBusinessTemplate(ERP5TypeTestC
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self)
+class TestDocumentTemplateItem(BusinessTemplateMixin):
+ def test_BusinessTemplateWithDocument(self):
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreateDocument \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddDocumentToBusinessTemplate \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ RemoveDocument \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckInstalledInstallationState \
+ CheckBuiltBuildingState \
+ CheckNoTrashBin \
+ CheckSkinsLayers \
+ CheckDocumentExists \
+ UninstallBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckDocumentRemoved \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ def test_BusinessTemplateUpdateWithDocument(self):
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreateDocument \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddDocumentToBusinessTemplate \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ RemoveDocument \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckInstalledInstallationState \
+ CheckBuiltBuildingState \
+ CheckNoTrashBin \
+ CheckSkinsLayers \
+ CheckDocumentExists \
+ RemoveDocument \
+ CreateUpdatedDocument \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddDocumentToBusinessTemplate \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ BuildBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckObjectPropertiesInBusinessTemplate \
+ SaveBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CreateDocument \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ ImportBusinessTemplate \
+ UseImportBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ InstallBusinessTemplate \
+ Tic \
+ CheckUpdatedDocumentExists \
+ UninstallBusinessTemplate \
+ CheckBuiltBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckDocumentRemoved \
+ CheckWorkflowChainRemoved \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+class TestConstraintTemplateItem(TestDocumentTemplateItem):
+ def test(self):
+ raise NotImplemenetedError
+
+class TestExtensionTemplateItem(TestDocumentTemplateItem):
+ def test(self):
+ raise NotImplemenetedError
+
+class TestTestTemplateItem(TestDocumentTemplateItem):
+ def test(self):
+ raise NotImplemenetedError
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestBusinessTemplate))
+ suite.addTest(unittest.makeSuite(TestConstraintTemplateItem))
+ suite.addTest(unittest.makeSuite(TestDocumentTemplateItem))
+ suite.addTest(unittest.makeSuite(TestExtensionTemplateItem))
+ suite.addTest(unittest.makeSuite(TestTestTemplateItem))
return suite
More information about the Erp5-report
mailing list