[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