From daab84895379f36b4828e7dbcbc70689090f924a Mon Sep 17 00:00:00 2001 From: Sebastien Robin <seb@nexedi.com> Date: Mon, 21 Mar 2011 10:20:12 +0000 Subject: [PATCH] put method to construct dummy simulation tree in mixin in order to allow reusing it git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@44459 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/tests/testBPMCore.py | 47 ++++++++++++++++++------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/product/ERP5/tests/testBPMCore.py b/product/ERP5/tests/testBPMCore.py index 6d76854269..40e7ae92dd 100644 --- a/product/ERP5/tests/testBPMCore.py +++ b/product/ERP5/tests/testBPMCore.py @@ -546,22 +546,16 @@ class TestBPMDummyDeliveryMovementMixin(TestBPMMixin): trade_phase='default/delivery') self.stepTic() -class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin): - - def test_isBuildable(self): - """Test isBuildable for ordered, delivered and invoiced sequence - - Here Business Process sequence corresponds simulation tree. - - delivery_path is related to root applied rule, and invoice_path is related - to rule below, and invoice_path is after delivery_path + 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) """ - self._createOrderedDeliveredInvoicedBusinessProcess() # create order and order line to have starting point for business process - order = self._createDelivery() + 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) @@ -601,7 +595,20 @@ class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin): constructSimulationTree(applied_rule) constructSimulationTree(applied_rule, prefix='split') - order.setSimulationState(self.completed_state) +class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin): + + def test_isBuildable(self): + """Test isBuildable for ordered, delivered and invoiced sequence + + Here Business Process sequence corresponds simulation tree. + + delivery_path is related to root applied rule, and invoice_path is related + to rule below, and invoice_path is after delivery_path + """ + self._createOrderedDeliveredInvoicedBusinessProcess() + self.constructSimulationTreeAndDeliveries() + + self.order.setSimulationState(self.completed_state) self.stepTic() def checkIsBusinessLinkBuildable(explanation, business_link, value): @@ -609,17 +616,17 @@ class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin): explanation, business_link), value) # in the beginning only order related movements shall be buildable - checkIsBusinessLinkBuildable(order, self.delivery_link, True) + checkIsBusinessLinkBuildable(self.order, self.delivery_link, True) self.assertEquals(self.delivery_simulation_movement.isBuildable(), True) self.assertEquals(self.split_delivery_simulation_movement.isBuildable(), True) - checkIsBusinessLinkBuildable(order, self.invoice_link, False) + checkIsBusinessLinkBuildable(self.order, self.invoice_link, False) self.assertEquals(self.invoicing_simulation_movement.isBuildable(), False) self.assertEquals(self.split_invoicing_simulation_movement.isBuildable(), False) # add delivery - delivery = self._createDelivery(causality_value = order) + delivery = self._createDelivery(causality_value = self.order) delivery_line = self._createMovement(delivery) # relate not split movement with delivery (deliver it) @@ -635,14 +642,14 @@ class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin): # # delivery_link (for delivery) is not buildable - delivery is already # built for those movements - checkIsBusinessLinkBuildable(order, self.delivery_link, True) + checkIsBusinessLinkBuildable(self.order, self.delivery_link, True) self.assertEquals(self.split_delivery_simulation_movement.isBuildable(), True) checkIsBusinessLinkBuildable(delivery, self.delivery_link, False) checkIsBusinessLinkBuildable(delivery, self.invoice_link, False) self.assertEquals(self.delivery_simulation_movement.isBuildable(), False) self.assertEquals(self.invoicing_simulation_movement.isBuildable(), False) - checkIsBusinessLinkBuildable(order, self.invoice_link, False) + checkIsBusinessLinkBuildable(self.order, self.invoice_link, False) self.assertEquals(self.split_invoicing_simulation_movement.isBuildable(), False) # put delivery in simulation state configured on path (and this state is @@ -664,11 +671,11 @@ class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin): # # split movement for invoicing is not buildable - no proper delivery # related for previous path - checkIsBusinessLinkBuildable(order, self.delivery_link, True) + checkIsBusinessLinkBuildable(self.order, self.delivery_link, True) self.assertEquals(self.invoicing_simulation_movement.isBuildable(), True) checkIsBusinessLinkBuildable(delivery, self.invoice_link, True) - checkIsBusinessLinkBuildable(order, self.invoice_link, False) + checkIsBusinessLinkBuildable(self.order, self.invoice_link, False) checkIsBusinessLinkBuildable(delivery, self.invoice_link, True) checkIsBusinessLinkBuildable(delivery, self.delivery_link, False) self.assertEquals(self.delivery_simulation_movement.isBuildable(), False) -- 2.30.9