[Erp5-report] r44462 seb - in /erp5/trunk/products/ERP5: Document/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 21 12:02:37 CET 2011


Author: seb
Date: Mon Mar 21 12:02:37 2011
New Revision: 44462

URL: http://svn.erp5.org?rev=44462&view=rev
Log:
improve test_isFrozen_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/Document/BusinessLink.py
    erp5/trunk/products/ERP5/tests/testBPMCore.py

Modified: erp5/trunk/products/ERP5/Document/BusinessLink.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessLink.py?rev=44462&r1=44461&r2=44462&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessLink.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessLink.py [utf8] Mon Mar 21 12:02:37 2011
@@ -218,7 +218,7 @@ class BusinessLink(Path, Predicate):
     if not movement_list:
       return False # Frozen is True only if some delivered movements exist
     for movement in movement_list:
-      if movement.getDelivery() and movement.getSimulationState() not in acceptable_state_list: # XXX-JPS is it acceptable optimizatoin ?
+      if movement.getSimulationState() not in acceptable_state_list:
         return False
     return True
 

Modified: erp5/trunk/products/ERP5/tests/testBPMCore.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBPMCore.py?rev=44462&r1=44461&r2=44462&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] Mon Mar 21 12:02:37 2011
@@ -492,8 +492,8 @@ class TestBPMDummyDeliveryMovementMixin(
   completed_state = 'delivered'
   frozen_state = 'confirmed'
 
-  completed_state_list = [completed_state, frozen_state]
-  frozen_state_list = [frozen_state]
+  completed_state_list = [completed_state]
+  frozen_state_list = [completed_state, frozen_state]
 
   def _createOrderedDeliveredInvoicedBusinessProcess(self):
     # simple business process preparation
@@ -752,89 +752,49 @@ class TestBPMisCompletedImplementation(T
     self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), True)
 
 class TestBPMisFrozenImplementation(TestBPMDummyDeliveryMovementMixin):
-  @newSimulationExpectedFailure
+
   def test_isFrozen_OrderedDeliveredInvoiced(self):
     """Test isFrozen 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.delivery_path
-    )
-
-    # 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.assertEqual(self.order_link.isFrozen(self.order), False)
+    self.assertEqual(self.delivery_link.isFrozen(self.order), False)
+    self.assertEqual(self.invoice_link.isFrozen(self.order), False)
+    self.assertEqual(self.simulation_movement.isFrozen(), False)
+    self.assertEqual(self.split_simulation_movement.isFrozen(), False)
 
+    self.order.setSimulationState(self.completed_state)
     self.stepTic()
+    self.assertEqual(self.order_link.isFrozen(self.order), True)
+    self.assertEqual(self.delivery_link.isFrozen(self.order), False)
 
-    self.assertEqual(self.delivery_path.isFrozen(order), False)
-    self.assertEqual(self.invoice_path.isFrozen(order), False)
-
-    self.assertEqual(simulation_movement.isFrozen(), False)
-    self.assertEqual(invoicing_simulation_movement.isFrozen(), False)
-    self.assertEqual(split_simulation_movement.isFrozen(), False)
-    self.assertEqual(split_invoicing_simulation_movement.isFrozen(), False)
+    self.assertEqual(self.simulation_movement.isFrozen(), True)
+    self.assertEqual(self.invoicing_simulation_movement.isFrozen(), False)
+    self.assertEqual(self.split_simulation_movement.isFrozen(), True)
+    self.assertEqual(self.split_invoicing_simulation_movement.isFrozen(), False)
 
     # add delivery
-    delivery = self._createDelivery(causality_value = order)
+    delivery = self._createDelivery()
     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.isFrozen(order), False)
-    self.assertEqual(self.invoice_path.isFrozen(order), False)
+    self.assertEqual(self.delivery_link.isFrozen(self.order), False)
+    self.assertEqual(self.invoice_link.isFrozen(self.order), False)
 
     # from delivery point of view everything is same
-    self.assertEqual(self.delivery_path.isFrozen(delivery), False)
-    self.assertEqual(self.invoice_path.isFrozen(delivery), False)
+    self.assertEqual(self.delivery_link.isFrozen(delivery), False)
+    self.assertEqual(self.invoice_link.isFrozen(delivery), False)
 
-    self.assertEqual(simulation_movement.isFrozen(), False)
-    self.assertEqual(invoicing_simulation_movement.isFrozen(), False)
-    self.assertEqual(split_simulation_movement.isFrozen(), False)
-    self.assertEqual(split_invoicing_simulation_movement.isFrozen(), False)
+    self.assertEqual(self.simulation_movement.isFrozen(), True)
+    self.assertEqual(self.invoicing_simulation_movement.isFrozen(), False)
+    self.assertEqual(self.split_simulation_movement.isFrozen(), True)
+    self.assertEqual(self.split_invoicing_simulation_movement.isFrozen(), False)
 
     # put delivery in simulation state configured on path (and this state is
     # available directly on movements)
@@ -845,15 +805,15 @@ class TestBPMisFrozenImplementation(Test
 
     self.stepTic()
 
-    self.assertEqual(self.delivery_path.isFrozen(order), False)
-    self.assertEqual(self.invoice_path.isFrozen(order), False)
-    self.assertEqual(self.delivery_path.isFrozen(delivery), False)
-    self.assertEqual(self.invoice_path.isFrozen(delivery), False)
-
-    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)
+    self.assertEqual(self.delivery_link.isFrozen(self.order), False)
+    self.assertEqual(self.invoice_link.isFrozen(self.order), False)
+    self.assertEqual(self.delivery_link.isFrozen(delivery), True)
+    self.assertEqual(self.invoice_link.isFrozen(delivery), False)
+
+    self.assertEqual(self.delivery_simulation_movement.isFrozen(), True)
+    self.assertEqual(self.invoicing_simulation_movement.isFrozen(), False)
+    self.assertEqual(self.split_simulation_movement.isFrozen(), True)
+    self.assertEqual(self.split_invoicing_simulation_movement.isFrozen(), False)
 
   @newSimulationExpectedFailure
   def test_isFrozen_OrderedInvoicedDelivered(self):



More information about the Erp5-report mailing list