[Erp5-report] r34658 kazuhiko - /erp5/trunk/products/ERP5/tests/testBPMCore.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Apr 19 16:08:58 CEST 2010


Author: kazuhiko
Date: Mon Apr 19 16:08:58 2010
New Revision: 34658

URL: http://svn.erp5.org?rev=34658&view=rev
Log:
port testBPMCore to the new simulation hierarchy.
* use different state than 'planned' as frozen state, to avoid unexpected isFrozen() value.
* use order business path.
* fix wrong assertions based on the wrong behaviour caused by the legacy simulation hierarchy.

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=34658&r1=34657&r2=34658&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] Mon Apr 19 16:08:58 2010
@@ -626,8 +626,8 @@
     self.portal.deleteContent(id='testing_folder')
     self.stepTic()
 
-  completed_state = 'confirmed'
-  frozen_state = 'planned'
+  completed_state = 'delivered'
+  frozen_state = 'confirmed'
 
   completed_state_list = [completed_state, frozen_state]
   frozen_state_list = [frozen_state]
@@ -641,6 +641,12 @@
 
     # path which is completed, as soon as related simulation movements are in
     # proper state
+    self.order_path = self.createBusinessPath(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_path = self.createBusinessPath(business_process,
         predecessor_value = ordered, successor_value = delivered,
         trade_phase='default/delivery',
@@ -657,6 +663,12 @@
     ordered = self.createBusinessState(business_process)
     delivered = self.createBusinessState(business_process)
     invoiced = self.createBusinessState(business_process)
+
+    self.order_path = self.createBusinessPath(business_process,
+        successor_value = ordered,
+        trade_phase='default/order',
+        completed_state_list = self.completed_state_list,
+        frozen_state_list = self.frozen_state_list)
 
     self.invoice_path = self.createBusinessPath(business_process,
         predecessor_value = ordered, successor_value = invoiced,
@@ -689,12 +701,19 @@
 
     simulation_movement = applied_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
-      causality_value = self.delivery_path
+      delivery_value = order_line,
+      causality_value = self.order_path
     )
 
     # second level rule with simulation movement
-    invoicing_rule = simulation_movement.newContent(
+    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',
@@ -702,22 +721,30 @@
 
     # split simulation movement for first level applied rule
     split_simulation_movement = applied_rule.newContent(
-      portal_type = 'Simulation Movement', order_value = order_line,
-      causality_value = self.delivery_path)
+      portal_type = 'Simulation Movement', delivery_value = order_line,
+      causality_value = self.order_path)
 
     # second level rule with simulation movement for split parent movement
-    split_invoicing_rule = split_simulation_movement.newContent(
+    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)
 
+    order.setSimulationState(self.completed_state)
     self.stepTic()
 
     # in the beginning only order related movements shall be buildable
     self.assertEquals(self.delivery_path.isBuildable(order), True)
-    self.assertEquals(simulation_movement.isBuildable(), True)
-    self.assertEquals(split_simulation_movement.isBuildable(), True)
+    self.assertEquals(delivery_simulation_movement.isBuildable(), True)
+    self.assertEquals(split_delivery_simulation_movement.isBuildable(), True)
 
     self.assertEquals(self.invoice_path.isBuildable(order), False)
     self.assertEquals(invoicing_simulation_movement.isBuildable(), False)
@@ -729,7 +756,7 @@
     delivery_line = self._createMovement(delivery)
 
     # relate not split movement with delivery (deliver it)
-    simulation_movement.edit(delivery_value = delivery_line)
+    delivery_simulation_movement.edit(delivery_value = delivery_line)
 
     self.stepTic()
 
@@ -742,11 +769,11 @@
     # delivery_path (for delivery) is not buildable - delivery is already
     # built for those movements
     self.assertEquals(self.delivery_path.isBuildable(order), True)
-    self.assertEquals(split_simulation_movement.isBuildable(), True)
+    self.assertEquals(split_delivery_simulation_movement.isBuildable(), True)
 
     self.assertEquals(self.delivery_path.isBuildable(delivery), False)
     self.assertEquals(self.invoice_path.isBuildable(delivery), False)
-    self.assertEquals(simulation_movement.isBuildable(), False)
+    self.assertEquals(delivery_simulation_movement.isBuildable(), False)
     self.assertEquals(invoicing_simulation_movement.isBuildable(), False)
     self.assertEquals(self.invoice_path.isBuildable(order), False)
     self.assertEquals(split_invoicing_simulation_movement.isBuildable(),
@@ -777,7 +804,7 @@
     self.assertEquals(self.invoice_path.isBuildable(order), True)
 
     self.assertEquals(self.delivery_path.isBuildable(delivery), False)
-    self.assertEquals(simulation_movement.isBuildable(), False)
+    self.assertEquals(delivery_simulation_movement.isBuildable(), False)
     self.assertEquals(split_invoicing_simulation_movement.isBuildable(),
         False)
 
@@ -799,20 +826,27 @@
 
     simulation_movement = applied_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
-      causality_value = self.delivery_path
+      delivery_value = order_line,
+      causality_value = self.order_path
     )
 
-    invoicing_rule = simulation_movement.newContent(
+    delivery_rule = simulation_movement.newContent(
+        portal_type='Applied Rule')
+    delivery_simulation_movement = delivery_rule.newContent(
+        portal_type='Simulation Movement',
+        causality_value = self.delivery_path)
+
+    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)
 
+    order.setSimulationState(self.completed_state)
     self.stepTic()
 
     self.assertEquals(self.delivery_path.isBuildable(order), False)
-    self.assertEquals(simulation_movement.isBuildable(), False)
+    self.assertEquals(delivery_simulation_movement.isBuildable(), False)
 
     self.assertEquals(self.invoice_path.isBuildable(order), True)
     self.assertEquals(invoicing_simulation_movement.isBuildable(), True)
@@ -828,7 +862,7 @@
 
     self.assertEquals(self.delivery_path.isBuildable(delivery), False)
     self.assertEquals(self.invoice_path.isBuildable(delivery), False)
-    self.assertEquals(simulation_movement.isBuildable(), False)
+    self.assertEquals(delivery_simulation_movement.isBuildable(), False)
     self.assertEquals(invoicing_simulation_movement.isBuildable(), False)
     self.assertEquals(self.invoice_path.isBuildable(order), False)
 
@@ -846,13 +880,13 @@
     self.assertEquals(invoicing_simulation_movement.isBuildable(), False)
     self.assertEquals(self.invoice_path.isBuildable(delivery), False)
     self.assertEquals(self.invoice_path.isBuildable(order), False)
-    self.assertEquals(simulation_movement.isBuildable(), True)
+    self.assertEquals(delivery_simulation_movement.isBuildable(), True)
 
     # now simulate compensation
 
-    compensated_simulation_movement = applied_rule.newContent(
+    compensated_simulation_movement = delivery_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
+      delivery_value = order_line,
       causality_value = self.delivery_path
     )
 
@@ -868,16 +902,13 @@
     another_delivery = self._createDelivery(causality_value = delivery)
     another_delivery_line = self._createMovement(another_delivery)
 
-    simulation_movement.edit(delivery_value=another_delivery_line)
-
-    self.stepTic()
-
-    # XXX look at comments in BusinessPath.isBuildable
-    # in this case expected result if False for delivery_path.isBuildable(order)
-    self.assertEquals(self.delivery_path.isBuildable(order), True)
-    self.assertEquals(self.delivery_path.isBuildable(delivery), False)
-
-    self.assertEquals(simulation_movement.isBuildable(), False)
+    delivery_simulation_movement.edit(delivery_value=another_delivery_line)
+
+    self.stepTic()
+
+    self.assertEquals(self.delivery_path.isBuildable(order), False)
+
+    self.assertEquals(delivery_simulation_movement.isBuildable(), False)
     self.assertEquals(invoicing_simulation_movement.isBuildable(), False)
 
     self.assertEquals(self.invoice_path.isBuildable(order), True)
@@ -901,12 +932,19 @@
 
     simulation_movement = applied_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
-      causality_value = self.delivery_path
+      delivery_value = order_line,
+      causality_value = self.order_path
     )
 
     # second level rule with simulation movement
-    invoicing_rule = simulation_movement.newContent(
+    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',
@@ -914,11 +952,18 @@
 
     # split simulation movement for first level applied rule
     split_simulation_movement = applied_rule.newContent(
-      portal_type = 'Simulation Movement', order_value = order_line,
-      causality_value = self.delivery_path)
+      portal_type = 'Simulation Movement', delivery_value = order_line,
+      causality_value = self.order_path)
 
     # second level rule with simulation movement for split parent movement
-    split_invoicing_rule = split_simulation_movement.newContent(
+    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',
@@ -937,7 +982,7 @@
     delivery_line = self._createMovement(delivery)
 
     # relate not split movement with delivery (deliver it)
-    simulation_movement.edit(delivery_value = delivery_line)
+    delivery_simulation_movement.edit(delivery_value = delivery_line)
 
     self.stepTic()
 
@@ -988,11 +1033,17 @@
 
     simulation_movement = applied_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
+      delivery_value = order_line,
       causality_value = self.delivery_path
     )
 
-    invoicing_rule = simulation_movement.newContent(
+    delivery_rule = simulation_movement.newContent(
+        portal_type='Applied Rule')
+    delivery_simulation_movement = delivery_rule.newContent(
+        portal_type='Simulation Movement',
+        causality_value = self.delivery_path)
+
+    invoicing_rule = delivery_simulation_movement.newContent(
         portal_type='Applied Rule')
     invoicing_simulation_movement = invoicing_rule.newContent(
         portal_type='Simulation Movement',
@@ -1048,9 +1099,9 @@
 
     # now simulate compensation
 
-    compensated_simulation_movement = applied_rule.newContent(
+    compensated_simulation_movement = delivery_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
+      delivery_value = order_line,
       causality_value = self.delivery_path
     )
 
@@ -1066,7 +1117,7 @@
     another_delivery = self._createDelivery(causality_value = delivery)
     another_delivery_line = self._createMovement(another_delivery)
 
-    simulation_movement.edit(delivery_value=another_delivery_line)
+    delivery_simulation_movement.edit(delivery_value=another_delivery_line)
 
     self.stepTic()
 
@@ -1097,12 +1148,19 @@
 
     simulation_movement = applied_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
+      delivery_value = order_line,
       causality_value = self.delivery_path
     )
 
     # second level rule with simulation movement
-    invoicing_rule = simulation_movement.newContent(
+    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',
@@ -1110,11 +1168,18 @@
 
     # split simulation movement for first level applied rule
     split_simulation_movement = applied_rule.newContent(
-      portal_type = 'Simulation Movement', order_value = order_line,
-      causality_value = self.delivery_path)
+      portal_type = 'Simulation Movement', delivery_value = order_line,
+      causality_value = self.order_path)
 
     # second level rule with simulation movement for split parent movement
-    split_invoicing_rule = split_simulation_movement.newContent(
+    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',
@@ -1135,7 +1200,7 @@
     delivery_line = self._createMovement(delivery)
 
     # relate not split movement with delivery (deliver it)
-    simulation_movement.edit(delivery_value = delivery_line)
+    delivery_simulation_movement.edit(delivery_value = delivery_line)
 
     self.stepTic()
 
@@ -1163,10 +1228,10 @@
 
     self.assertEqual(self.delivery_path.isFrozen(order), False)
     self.assertEqual(self.invoice_path.isFrozen(order), False)
-    self.assertEqual(self.delivery_path.isFrozen(delivery), True)
+    self.assertEqual(self.delivery_path.isFrozen(delivery), False)
     self.assertEqual(self.invoice_path.isFrozen(delivery), False)
 
-    self.assertEqual(simulation_movement.isFrozen(), True)
+    self.assertEqual(delivery_simulation_movement.isFrozen(), True)
     self.assertEqual(invoicing_simulation_movement.isFrozen(), False)
     self.assertEqual(split_simulation_movement.isFrozen(), False)
     self.assertEqual(split_invoicing_simulation_movement.isFrozen(), False)
@@ -1183,11 +1248,17 @@
 
     simulation_movement = applied_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
+      delivery_value = order_line,
       causality_value = self.delivery_path
     )
 
-    invoicing_rule = simulation_movement.newContent(
+    delivery_rule = simulation_movement.newContent(
+        portal_type='Applied Rule')
+    delivery_simulation_movement = delivery_rule.newContent(
+        portal_type='Simulation Movement',
+        causality_value = self.delivery_path)
+
+    invoicing_rule = delivery_simulation_movement.newContent(
         portal_type='Applied Rule')
     invoicing_simulation_movement = invoicing_rule.newContent(
         portal_type='Simulation Movement',
@@ -1235,9 +1306,9 @@
 
     # now simulate compensation
 
-    compensated_simulation_movement = applied_rule.newContent(
+    compensated_simulation_movement = delivery_rule.newContent(
       portal_type = 'Simulation Movement',
-      order_value = order_line,
+      delivery_value = order_line,
       causality_value = self.delivery_path
     )
 
@@ -1253,7 +1324,7 @@
     another_delivery = self._createDelivery(causality_value = delivery)
     another_delivery_line = self._createMovement(another_delivery)
 
-    simulation_movement.edit(delivery_value=another_delivery_line)
+    delivery_simulation_movement.edit(delivery_value=another_delivery_line)
 
     self.stepTic()
 




More information about the Erp5-report mailing list