[Erp5-report] r44460 seb - /erp5/trunk/products/ERP5/tests/testBPMCore.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 21 11:20:22 CET 2011


Author: seb
Date: Mon Mar 21 11:20:22 2011
New Revision: 44460

URL: http://svn.erp5.org?rev=44460&view=rev
Log:
improve test_isCompleted_OrderedDeliveredInvoiced:
- remove newSimulationExpectedFailure decorator
- use method constructSimulationTreeAndDeliveries in order
  to avoid duplication of code
- extend the test in order to test more things

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=44460&r1=44459&r2=44460&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] Mon Mar 21 11:20:22 2011
@@ -594,6 +594,7 @@ class TestBPMDummyDeliveryMovementMixin(
 
     constructSimulationTree(applied_rule)
     constructSimulationTree(applied_rule, prefix='split')
+    self.stepTic()
 
 class TestBPMisBuildableImplementation(TestBPMDummyDeliveryMovementMixin):
 
@@ -683,88 +684,40 @@ class TestBPMisBuildableImplementation(T
         False)
 
 class TestBPMisCompletedImplementation(TestBPMDummyDeliveryMovementMixin):
-  @newSimulationExpectedFailure
+
   def test_isCompleted_OrderedDeliveredInvoiced(self):
     """Test isCompleted for ordered, delivered and invoiced sequence"""
     self._createOrderedDeliveredInvoicedBusinessProcess()
+    self.constructSimulationTreeAndDeliveries()
 
-    # create order and order line to have starting point for business process
-    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)
-
-    simulation_movement = applied_rule.newContent(
-      portal_type = 'Simulation Movement',
-      delivery_value = order_line,
-      causality_value = self.order_link
-    )
-
-    # second level rule with simulation movement
-    delivery_rule = simulation_movement.newContent(
-        portal_type='Applied Rule')
-    delivery_simulation_movement = delivery_rule.newContent(
-        portal_type='Simulation Movement',
-        causality_value = self.delivery_path)
-
-    # third level rule with simulation movement
-    invoicing_rule = delivery_simulation_movement.newContent(
-        portal_type='Applied Rule')
-    invoicing_simulation_movement = invoicing_rule.newContent(
-        portal_type='Simulation Movement',
-        causality_value = self.invoice_path)
-
-    # split simulation movement for first level applied rule
-    split_simulation_movement = applied_rule.newContent(
-      portal_type = 'Simulation Movement', delivery_value = order_line,
-      causality_value = self.order_link)
-
-    # second level rule with simulation movement for split parent movement
-    split_delivery_rule = split_simulation_movement.newContent(
-        portal_type='Applied Rule')
-    split_delivery_simulation_movement = split_delivery_rule.newContent(
-        portal_type='Simulation Movement',
-        causality_value = self.delivery_path)
-
-    # third level rule with simulation movement for split parent movement
-    split_invoicing_rule = split_delivery_simulation_movement.newContent(
-        portal_type='Applied Rule')
-    split_invoicing_simulation_movement = split_invoicing_rule.newContent(
-        portal_type='Simulation Movement',
-        causality_value = self.invoice_path)
-
-    self.stepTic()
+    self.assertEqual(self.delivery_link.isCompleted(self.order), False)
+    self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), False)
 
-    self.assertEqual(self.delivery_path.isCompleted(order), False)
-    self.assertEqual(self.delivery_path.isPartiallyCompleted(order), False)
-
-    self.assertEqual(self.invoice_path.isCompleted(order), False)
-    self.assertEqual(self.invoice_path.isPartiallyCompleted(order), False)
+    self.assertEqual(self.invoice_link.isCompleted(self.order), False)
+    self.assertEqual(self.invoice_link.isPartiallyCompleted(self.order), 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)
-    delivery_simulation_movement.edit(delivery_value = delivery_line)
+    self.delivery_simulation_movement.edit(delivery_value = delivery_line)
 
     self.stepTic()
 
     # nothing changes
-    self.assertEqual(self.delivery_path.isCompleted(order), False)
-    self.assertEqual(self.delivery_path.isPartiallyCompleted(order), False)
+    self.assertEqual(self.delivery_link.isCompleted(self.order), False)
+    self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), False)
 
-    self.assertEqual(self.invoice_path.isCompleted(order), False)
-    self.assertEqual(self.invoice_path.isPartiallyCompleted(order), False)
+    self.assertEqual(self.invoice_link.isCompleted(self.order), False)
+    self.assertEqual(self.invoice_link.isPartiallyCompleted(self.order), False)
 
     # from delivery point of view everything is same
-    self.assertEqual(self.delivery_path.isCompleted(delivery), False)
-    self.assertEqual(self.delivery_path.isPartiallyCompleted(delivery), False)
+    self.assertEqual(self.delivery_link.isCompleted(delivery), False)
+    self.assertEqual(self.delivery_link.isPartiallyCompleted(delivery), False)
 
-    self.assertEqual(self.invoice_path.isCompleted(delivery), False)
-    self.assertEqual(self.invoice_path.isPartiallyCompleted(delivery), False)
+    self.assertEqual(self.invoice_link.isCompleted(delivery), False)
+    self.assertEqual(self.invoice_link.isPartiallyCompleted(delivery), False)
 
     # put delivery in simulation state configured on path (and this state is
     # available directly on movements)
@@ -775,17 +728,28 @@ class TestBPMisCompletedImplementation(T
 
     self.stepTic()
 
-    self.assertEqual(self.delivery_path.isCompleted(order), False)
-    self.assertEqual(self.delivery_path.isPartiallyCompleted(order), True)
+    self.assertEqual(self.delivery_link.isCompleted(self.order), False)
+    self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), True)
 
-    self.assertEqual(self.invoice_path.isCompleted(order), False)
-    self.assertEqual(self.invoice_path.isPartiallyCompleted(order), False)
+    self.assertEqual(self.invoice_link.isCompleted(self.order), False)
+    self.assertEqual(self.invoice_link.isPartiallyCompleted(self.order), False)
 
-    self.assertEqual(self.delivery_path.isCompleted(delivery), True)
-    self.assertEqual(self.delivery_path.isPartiallyCompleted(delivery), True)
+    self.assertEqual(self.delivery_link.isCompleted(delivery), True)
+    self.assertEqual(self.delivery_link.isPartiallyCompleted(delivery), True)
 
-    self.assertEqual(self.invoice_path.isCompleted(delivery), False)
-    self.assertEqual(self.invoice_path.isPartiallyCompleted(delivery), False)
+    self.assertEqual(self.invoice_link.isCompleted(delivery), False)
+    self.assertEqual(self.invoice_link.isPartiallyCompleted(delivery), False)
+
+    # and finally deliver everything simulation movement coming from order
+    another_delivery = self._createDelivery()
+    another_delivery_line = self._createMovement(another_delivery)
+    self.split_delivery_simulation_movement.edit(
+      delivery_value=another_delivery_line)
+    another_delivery.setSimulationState(self.completed_state)
+    self.stepTic()
+
+    self.assertEqual(self.delivery_link.isCompleted(self.order), True)
+    self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), True)
 
   @newSimulationExpectedFailure
   def test_isCompleted_OrderedInvoicedDelivered(self):



More information about the Erp5-report mailing list