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

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Aug 17 15:54:43 CEST 2009


Author: luke
Date: Mon Aug 17 15:54:42 2009
New Revision: 28417

URL: http://svn.erp5.org?rev=28417&view=rev
Log:
 - use order link to match simulation movements with prevision for root rules, remove fixed todos
 - be consistent - use _list for order and delivery category property

Modified:
    erp5/trunk/products/ERP5/Document/BPMDeliveryRule.py
    erp5/trunk/products/ERP5/Document/BPMOrderRule.py
    erp5/trunk/products/ERP5/Document/BPMRule.py
    erp5/trunk/products/ERP5/tests/testBPMEvaluation.py

Modified: erp5/trunk/products/ERP5/Document/BPMDeliveryRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BPMDeliveryRule.py?rev=28417&r1=28416&r2=28417&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BPMDeliveryRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BPMDeliveryRule.py [utf8] Mon Aug 17 15:54:42 2009
@@ -38,8 +38,6 @@
     DISCLAIMER: Refer to BPMRule docstring disclaimer.
 
     This is BPM enabled Delivery Rule.
-
-    FIXME: override _getCompensatedMovementList to match per order link
   """
 
   # CMF Type Definition
@@ -64,7 +62,7 @@
       business_path, current_property_dict):
     """Delivery specific update dict"""
     return {
-      'order_value': movement,
-      'delivery_value': movement,
+      'order_list': [movement.getRelativeUrl()],
+      'delivery_list': [movement.getRelativeUrl()],
       'deliverable': 1,
     }

Modified: erp5/trunk/products/ERP5/Document/BPMOrderRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BPMOrderRule.py?rev=28417&r1=28416&r2=28417&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BPMOrderRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BPMOrderRule.py [utf8] Mon Aug 17 15:54:42 2009
@@ -38,8 +38,6 @@
     DISCLAIMER: Refer to BPMRule docstring disclaimer.
 
     This is BPM enabled Order Rule.
-
-    FIXME: override _getCompensatedMovementList to match per order link
   """
   # CMF Type Definition
   meta_type = 'ERP5 BPM Order Rule'
@@ -63,6 +61,6 @@
       business_path, current_property_dict):
     """Order rule specific update dictionary"""
     return {
-      'order_value': movement,
+      'order_list': [movement.getRelativeUrl()],
       'deliverable': 1,
     }

Modified: erp5/trunk/products/ERP5/Document/BPMRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BPMRule.py?rev=28417&r1=28416&r2=28417&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BPMRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BPMRule.py [utf8] Mon Aug 17 15:54:42 2009
@@ -260,11 +260,17 @@
     for prevision in prevision_list:
       p_matched_list = []
       for movement in non_matched_list:
-        for prop in self.getMatchingPropertyList():
-          if prevision.get(prop) != movement.getProperty(prop):
-            break
+        if 'order_list' in prevision:
+          # applied rule is root, use order link to find movement
+          if movement.getOrder() ==  prevision.get('order_list', [''])[0]:
+            p_matched_list.append(movement)
         else:
-          p_matched_list.append(movement)
+          # applied rule is not root one, match
+          for prop in self.getMatchingPropertyList():
+            if prevision.get(prop) != movement.getProperty(prop):
+              break
+          else:
+            p_matched_list.append(movement)
 
       # Movements exist, we'll try to make them match the prevision
       if p_matched_list != []:

Modified: erp5/trunk/products/ERP5/tests/testBPMEvaluation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBPMEvaluation.py?rev=28417&r1=28416&r2=28417&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBPMEvaluation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBPMEvaluation.py [utf8] Mon Aug 17 15:54:42 2009
@@ -39,6 +39,12 @@
 TODOs:
   * avoid duplication of code when possible
   * implement tests wisely, to support at least both BPM cases
+
+Scenarios to cover:
+
+  * unify root rules (BPMOrderRule, BPMDeliveryRule, etc) tests - they share
+    a lot of code
+  * test case of splitting for root rules
 """
 import unittest
 
@@ -304,9 +310,6 @@
     self._checkOrderBPMSimulation()
 
   def test_planning_line_edit_add_same_resource_than_order(self):
-    # TODO: this test fails because BPMOrderRule do not matches movement using
-    # order link, this have to be done in similar way like OrderRule and
-    # DeliveryRule work
     self.test_planning_line_edit_add_same_resource()
     self.order.order()
     self.stepTic()




More information about the Erp5-report mailing list