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

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jun 18 10:17:49 CEST 2009


Author: yusuke
Date: Thu Jun 18 10:17:46 2009
New Revision: 27647

URL: http://svn.erp5.org?rev=27647&view=rev
Log:
forgot some updates for a test

Modified:
    erp5/trunk/products/ERP5/Document/BusinessProcess.py
    erp5/trunk/products/ERP5/tests/testMRP.py

Modified: erp5/trunk/products/ERP5/Document/BusinessProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessProcess.py?rev=27647&r1=27646&r2=27647&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessProcess.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessProcess.py [utf8] Thu Jun 18 10:17:46 2009
@@ -203,3 +203,53 @@
     path_list = self.objectValues(portal_type=self.getPortalBusinessPathTypeList())
     return filter(None, [path.getTradePhase()
                          for path in path_list])
+
+  def getRootExplanationPathValue(self):
+    """
+      Returns a root path of this business process
+    """
+    path_list = self.objectValues(portal_type=self.getPortalBusinessPathTypeList())
+    path_list = filter(lambda x: x.isDeliverable(), path_list)
+    
+    if len(path_list) > 1:
+      raise Exception, "this business process has multi root paths"
+
+    if len(path_list) == 1:
+      return path_list[0]
+
+  def getHeadPathValueList(self, trade_phase_list=None):
+    """
+      Returns a list of head path(s) of this business process
+
+      trade_phase_list -- used to filterring, means that discovering
+                          a list of head path with the trade_phase_list
+    """
+    head_path_list = list()
+    for state in self.getStateValueList():
+      if len(state.getSuccessorRelatedValueList()) == 0:
+        head_path_list += state.getPredecessorRelatedValueList()
+
+    if trade_phase_list is not None:
+      _set = set(trade_phase_list)
+      _list = list()
+      # start to discover a head path with the trade_phase_list from head path(s) of whole
+      for path in head_path_list:
+        _list += self._getHeadPathValueList(path, _set)
+      head_path_list = map(lambda t: t[0], filter(lambda t: t != (None, None), _list))
+
+    return head_path_list
+
+  def _getHeadPathValueList(self, path, trade_phase_set):
+    # if the path has target trade_phase, it is a head path.
+    _set = set(path.getTradePhaseList())
+    if _set & trade_phase_set:
+      return [(path, _set & trade_phase_set)]
+
+    node = path.getSuccessorValue()
+    if node is None:
+      return [(None, None)]
+
+    _list = list()
+    for next_path in node.getPredecessorRelatedValueList():
+      _list += self._getHeadPathValueList(next_path, trade_phase_set)
+    return _list

Modified: erp5/trunk/products/ERP5/tests/testMRP.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testMRP.py?rev=27647&r1=27646&r2=27647&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testMRP.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testMRP.py [utf8] Thu Jun 18 10:17:46 2009
@@ -254,7 +254,7 @@
 class TestMRPImplementation(TestMRPMixin, ERP5TypeTestCase):
   """the test for implementation"""
   def test_TransformationRule_getHeadProductionPathList(self):
-    rule = self.portal.portal_rules.default_transformation_rule
+    rule = self.portal.portal_rules.default_transformation_model_rule
 
     transformation = self.createDefaultTransformation()
 
@@ -303,7 +303,7 @@
     # test mock
     applied_rule = movement.newContent(potal_type='Applied Rule')
 
-    rule = self.portal.portal_rules.default_transformation_rule
+    rule = self.portal.portal_rules.default_transformation_model_rule
     rule.expand(applied_rule)
 
     # assertion
@@ -367,7 +367,7 @@
     # test mock
     applied_rule = movement.newContent(potal_type='Applied Rule')
 
-    rule = self.portal.portal_rules.default_transformation_rule
+    rule = self.portal.portal_rules.default_transformation_model_rule
     rule.expand(applied_rule)
 
     # assertion
@@ -428,7 +428,7 @@
       movement._baseSetFrozen(1)
 
     # re-expand
-    rule = self.portal.portal_rules.default_transformation_rule
+    rule = self.portal.portal_rules.default_transformation_model_rule
     rule.expand(applied_rule)
 
     # assertion
@@ -506,7 +506,7 @@
     # test mock
     applied_rule = movement.newContent(potal_type='Applied Rule')
 
-    rule = self.portal.portal_rules.default_transformation_sourcing_rule
+    rule = self.portal.portal_rules.default_transformation_sourcing_model_rule
     rule.expand(applied_rule)
 
     # assertion




More information about the Erp5-report mailing list