[Erp5-report] r44466 seb - /erp5/trunk/products/ERP5/tests/testBPMCore.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Mar 21 13:49:27 CET 2011
Author: seb
Date: Mon Mar 21 13:49:27 2011
New Revision: 44466
URL: http://svn.erp5.org?rev=44466&view=rev
Log:
reorganise the code : use a single test class instead of having
many classes with a single test
Modified:
erp5/trunk/products/ERP5/tests/testBPMCore.py
Modified: erp5/trunk/products/ERP5/tests/testBPMCore.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBPMCore.py?rev=44466&r1=44465&r2=44466&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] Mon Mar 21 13:49:27 2011
@@ -192,8 +192,115 @@ class TestBPMMixin(ERP5TypeTestCase):
self.createAndValidateAccounts()
self.stepTic()
+class TestBPMDummyDeliveryMovementMixin(TestBPMMixin):
+ def _createDelivery(self, **kw):
+ return self.folder.newContent(portal_type='Dummy Delivery', **kw)
+
+ def _createMovement(self, delivery, **kw):
+ return delivery.newContent(portal_type='Dummy Movement', **kw)
+
+ def getBusinessTemplateList(self):
+ return super(TestBPMDummyDeliveryMovementMixin, self)\
+ .getBusinessTemplateList() \
+ + ('erp5_dummy_movement', )
+
+ def afterSetUp(self):
+ super(TestBPMDummyDeliveryMovementMixin, self).afterSetUp()
+ if not hasattr(self.portal, 'testing_folder'):
+ self.portal.newContent(portal_type='Folder',
+ id='testing_folder')
+ self.folder = self.portal.testing_folder
+ self.stepTic()
+
+ def beforeTearDown(self):
+ super(TestBPMDummyDeliveryMovementMixin, self).beforeTearDown()
+ self.portal.deleteContent(id='testing_folder')
+ self.stepTic()
-class TestBPMImplementation(TestBPMMixin):
+ completed_state = 'delivered'
+ frozen_state = 'confirmed'
+
+ completed_state_list = [completed_state]
+ frozen_state_list = [completed_state, frozen_state]
+
+ def _createOrderedDeliveredInvoicedBusinessProcess(self):
+ # simple business process preparation
+ business_process = self.createBusinessProcess()
+ category_tool = self.getCategoryTool()
+ ordered = category_tool.trade_state.ordered
+ delivered = category_tool.trade_state.delivered
+ invoiced = category_tool.trade_state.invoiced
+
+ # path which is completed, as soon as related simulation movements are in
+ # proper state
+ self.order_link = self.createBusinessLink(business_process,
+ successor_value = ordered,
+ trade_phase='default/order',
+ completed_state_list = self.completed_state_list,
+ frozen_state_list = self.frozen_state_list)
+
+ self.delivery_link = self.createBusinessLink(business_process,
+ predecessor_value = ordered, successor_value = delivered,
+ trade_phase='default/delivery',
+ completed_state_list = self.completed_state_list,
+ frozen_state_list = self.frozen_state_list)
+
+ self.invoice_link = self.createBusinessLink(business_process,
+ predecessor_value = delivered, successor_value = invoiced,
+ trade_phase='default/invoicing')
+ self.stepTic()
+
+ def constructSimulationTreeAndDeliveries(self):
+ """
+ Construct a simple simulation tree with deliveries. This is
+ not real simulation tree, we only need the structure, most
+ usual properties are not there (quantities, arrow, etc)
+ """
+ # create order and order line to have starting point for business process
+ self.order = order = self._createDelivery()
+ order_line = self._createMovement(order)
+
+ # first level rule with simulation movement
+ applied_rule = self.portal.portal_simulation.newContent(
+ portal_type='Applied Rule', causality_value=order)
+
+ def setTestClassProperty(prefix, property_name, document):
+ if prefix:
+ property_name = "%s_%s" % (prefix, property_name)
+ setattr(self, property_name, document)
+ return document
+
+ def constructSimulationTree(applied_rule, prefix=None):
+ document = setTestClassProperty(prefix, 'simulation_movement',
+ applied_rule.newContent(
+ portal_type = 'Simulation Movement',
+ delivery_value = order_line,
+ causality_value = self.order_link
+ ))
+
+ # second level rule with simulation movement
+ document = setTestClassProperty(prefix, 'delivery_rule',
+ document.newContent(
+ portal_type='Applied Rule'))
+ document = setTestClassProperty(prefix, 'delivery_simulation_movement',
+ document.newContent(
+ portal_type='Simulation Movement',
+ causality_value = self.delivery_link))
+
+ # third level rule with simulation movement
+ document = setTestClassProperty(prefix, 'invoicing_rule',
+ document.newContent(
+ portal_type='Applied Rule'))
+ document = setTestClassProperty(prefix, 'invoicing_simulation_movement',
+ document.newContent(
+ portal_type='Simulation Movement',
+ causality_value = self.invoice_link))
+
+ constructSimulationTree(applied_rule)
+ constructSimulationTree(applied_rule, prefix='split')
+ self.stepTic()
+
+class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
"""Business Process implementation tests"""
def test_BusinessProcess_getBusinessLinkValueList(self):
business_process = self.createBusinessProcess()
@@ -464,116 +571,6 @@ class TestBPMImplementation(TestBPMMixin
self.assertEquals(business_link_d_e.getExpectedStartDate(mock), DateTime('2009/04/08 GMT+9'))
self.assertEquals(business_link_d_e.getExpectedStopDate(mock), DateTime('2009/04/12 GMT+9'))
-class TestBPMDummyDeliveryMovementMixin(TestBPMMixin):
- def _createDelivery(self, **kw):
- return self.folder.newContent(portal_type='Dummy Delivery', **kw)
-
- def _createMovement(self, delivery, **kw):
- return delivery.newContent(portal_type='Dummy Movement', **kw)
-
- def getBusinessTemplateList(self):
- return super(TestBPMDummyDeliveryMovementMixin, self)\
- .getBusinessTemplateList() \
- + ('erp5_dummy_movement', )
-
- def afterSetUp(self):
- super(TestBPMDummyDeliveryMovementMixin, self).afterSetUp()
- if not hasattr(self.portal, 'testing_folder'):
- self.portal.newContent(portal_type='Folder',
- id='testing_folder')
- self.folder = self.portal.testing_folder
- self.stepTic()
-
- def beforeTearDown(self):
- super(TestBPMDummyDeliveryMovementMixin, self).beforeTearDown()
- self.portal.deleteContent(id='testing_folder')
- self.stepTic()
-
- completed_state = 'delivered'
- frozen_state = 'confirmed'
-
- completed_state_list = [completed_state]
- frozen_state_list = [completed_state, frozen_state]
-
- def _createOrderedDeliveredInvoicedBusinessProcess(self):
- # simple business process preparation
- business_process = self.createBusinessProcess()
- category_tool = self.getCategoryTool()
- ordered = category_tool.trade_state.ordered
- delivered = category_tool.trade_state.delivered
- invoiced = category_tool.trade_state.invoiced
-
- # path which is completed, as soon as related simulation movements are in
- # proper state
- self.order_link = self.createBusinessLink(business_process,
- successor_value = ordered,
- trade_phase='default/order',
- completed_state_list = self.completed_state_list,
- frozen_state_list = self.frozen_state_list)
-
- self.delivery_link = self.createBusinessLink(business_process,
- predecessor_value = ordered, successor_value = delivered,
- trade_phase='default/delivery',
- completed_state_list = self.completed_state_list,
- frozen_state_list = self.frozen_state_list)
-
- self.invoice_link = self.createBusinessLink(business_process,
- predecessor_value = delivered, successor_value = invoiced,
- trade_phase='default/invoicing')
- self.stepTic()
-
- def constructSimulationTreeAndDeliveries(self):
- """
- Construct a simple simulation tree with deliveries. This is
- not real simulation tree, we only need the structure, most
- usual properties are not there (quantities, arrow, etc)
- """
- # create order and order line to have starting point for business process
- self.order = order = self._createDelivery()
- order_line = self._createMovement(order)
-
- # first level rule with simulation movement
- applied_rule = self.portal.portal_simulation.newContent(
- portal_type='Applied Rule', causality_value=order)
-
- def setTestClassProperty(prefix, property_name, document):
- if prefix:
- property_name = "%s_%s" % (prefix, property_name)
- setattr(self, property_name, document)
- return document
-
- def constructSimulationTree(applied_rule, prefix=None):
- document = setTestClassProperty(prefix, 'simulation_movement',
- applied_rule.newContent(
- portal_type = 'Simulation Movement',
- delivery_value = order_line,
- causality_value = self.order_link
- ))
-
- # second level rule with simulation movement
- document = setTestClassProperty(prefix, 'delivery_rule',
- document.newContent(
- portal_type='Applied Rule'))
- document = setTestClassProperty(prefix, 'delivery_simulation_movement',
- document.newContent(
- portal_type='Simulation Movement',
- causality_value = self.delivery_link))
-
- # third level rule with simulation movement
- document = setTestClassProperty(prefix, 'invoicing_rule',
- document.newContent(
- portal_type='Applied Rule'))
- document = setTestClassProperty(prefix, 'invoicing_simulation_movement',
- document.newContent(
- portal_type='Simulation Movement',
- causality_value = self.invoice_link))
-
- constructSimulationTree(applied_rule)
- constructSimulationTree(applied_rule, prefix='split')
- self.stepTic()
-
-class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin):
-
def test_isBuildable(self):
"""Test isBuildable for ordered, delivered and invoiced sequence
@@ -659,8 +656,6 @@ class TestBPMisBuildableImplementation(T
self.assertEquals(self.split_invoicing_simulation_movement.isBuildable(),
False)
-class TestBPMisCompletedImplementation(TestBPMDummyDeliveryMovementMixin):
-
def test_isCompleted(self):
"""Test isCompleted for ordered, delivered and invoiced sequence"""
self._createOrderedDeliveredInvoicedBusinessProcess()
@@ -727,8 +722,6 @@ class TestBPMisCompletedImplementation(T
self.assertEqual(self.delivery_link.isCompleted(self.order), True)
self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), True)
-class TestBPMisFrozenImplementation(TestBPMDummyDeliveryMovementMixin):
-
def test_isFrozen_OrderedDeliveredInvoiced(self):
"""Test isFrozen for ordered, delivered and invoiced sequence"""
self._createOrderedDeliveredInvoicedBusinessProcess()
@@ -794,7 +787,4 @@ class TestBPMisFrozenImplementation(Test
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestBPMImplementation))
- suite.addTest(unittest.makeSuite(TestBPMisBuildableImplementation))
- suite.addTest(unittest.makeSuite(TestBPMisCompletedImplementation))
- suite.addTest(unittest.makeSuite(TestBPMisFrozenImplementation))
return suite
More information about the Erp5-report
mailing list