[Erp5-report] r41260 jm - in /erp5/trunk/products: ERP5/Document/ ERP5/tests/ ERP5Legacy/te...

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Dec 9 12:24:27 CET 2010


Author: jm
Date: Thu Dec  9 12:24:26 2010
New Revision: 41260

URL: http://svn.erp5.org?rev=41260&view=rev
Log:
wip

Modified:
    erp5/trunk/products/ERP5/Document/BusinessProcess.py
    erp5/trunk/products/ERP5/tests/testTaskReporting.py
    erp5/trunk/products/ERP5Legacy/tests/testLegacyProjectAndTask.py

Modified: erp5/trunk/products/ERP5/Document/BusinessProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessProcess.py?rev=41260&r1=41259&r2=41260&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessProcess.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessProcess.py [utf8] Thu Dec  9 12:24:26 2010
@@ -187,8 +187,7 @@ class BusinessProcess(Path, XMLObject):
       raise ValueError('explanation must not be a Root Applied Rule')
 
     trade_date = trade_model_path.getTradeDate()
-    if not trade_date:
-      raise ValueError('a trade_date must be defined on every Trade Model Path')
+    assert trade_date, 'a trade_date must be defined on the Trade Model Path'
 
     reference_date_method_id = trade_model_path.getReferenceDateMethodId()
     if not reference_date_method_id:
@@ -801,10 +800,10 @@ class BusinessProcess(Path, XMLObject):
         # applied rules which are not root applied rules. 
         # XXX-JPS could be extended with a rule property instead
         # of supports only in root applied rule case
-        start_date, stop_date = self.getExpectedTradeModelPathStartAndStopDate(
-                               explanation, trade_model_path, delay_mode=delay_mode)
-        property_dict['start_date'] = start_date
-        property_dict['stop_date'] = stop_date
+        if trade_model_path.getTradeDate():
+          property_dict['start_date'], property_dict['stop_date'] = \
+            self.getExpectedTradeModelPathStartAndStopDate(
+              explanation, trade_model_path, delay_mode=delay_mode)
     else:
       raise TypeError("Explanation must be an Applied Rule in expand process") # Nothing to do
     return property_dict

Modified: erp5/trunk/products/ERP5/tests/testTaskReporting.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testTaskReporting.py?rev=41260&r1=41259&r2=41260&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testTaskReporting.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testTaskReporting.py [utf8] Thu Dec  9 12:24:26 2010
@@ -47,23 +47,46 @@ class TestTaskReporting(ERP5ReportTestCa
   @reindex
   def _makeOneTask(self, simulation_state='planned', **kw):
     """Create a task, support many options"""
-    task_module = self.getPortalObject().task_module
-    task = task_module.newContent(portal_type='Task', **kw)
+    task = self.portal.task_module.newContent(portal_type='Task',
+                                              specialise=self.business_process)
+    task._edit(**kw)
     if simulation_state == 'planned':
       task.plan()
     if simulation_state == 'confirmed':
       task.confirm()
 
+  def getRule(self, **kw):
+    return self.portal.portal_rules.searchFolder(
+          sort_on='version', sort_order='descending', **kw)[0].getObject()
+
+  def createBusinessProcess(self):
+    module = self.portal.business_process_module
+    id = self.__class__.__name__
+    try:
+      business_process = module[id]
+    except KeyError:
+      default = module.erp5_default_business_process
+      business_process = module.newContent(id, default.getPortalType(),
+                                           specialise_value=default)
+      delivery_path, = default.getTradeModelPathValueList(
+          trade_phase='default/delivery')
+      business_process.newContent(portal_type=delivery_path.getPortalType(),
+                                  reference=delivery_path.getReference(),
+                                  trade_phase=delivery_path.getTradePhase())
+    return business_process.getRelativeUrl()
+
   def afterSetUp(self):
     """Setup the fixture.
     """
-    self.portal = self.getPortal()
-
-    for rule_id in ['default_order_rule', 'default_delivery_rule']:
-      rule = getattr(self.portal.portal_rules, rule_id)
-      if rule.getValidationState() == 'draft':
+    for rule_id in ('default_order_rule',
+                    'default_delivery_rule',
+                    'default_delivering_rule'):
+      rule = self.getRule(reference=rule_id)
+      if rule.getValidationState() != 'validated':
         rule.validate()
 
+    self.business_process = self.createBusinessProcess()
+
     # create organisations
     if not self.portal.organisation_module.has_key('Organisation_1'):
       org = self.portal.organisation_module.newContent(
@@ -153,15 +176,13 @@ class TestTaskReporting(ERP5ReportTestCa
     """Remove all documents.
     """
     transaction.abort()
-
-    portal = self.getPortal()
+    portal = self.portal
     portal.task_module.manage_delObjects(
                       list(portal.task_module.objectIds()))
     portal.task_report_module.manage_delObjects(
                       list(portal.task_report_module.objectIds()))
     portal.portal_simulation.manage_delObjects(
                       list(portal.portal_simulation.objectIds()))
-
     transaction.commit()
     self.tic()
 

Modified: erp5/trunk/products/ERP5Legacy/tests/testLegacyProjectAndTask.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Legacy/tests/testLegacyProjectAndTask.py?rev=41260&r1=41259&r2=41260&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Legacy/tests/testLegacyProjectAndTask.py [utf8] (original)
+++ erp5/trunk/products/ERP5Legacy/tests/testLegacyProjectAndTask.py [utf8] Thu Dec  9 12:24:26 2010
@@ -32,6 +32,8 @@ from Products.ERP5.tests.testProject imp
 test_suite_list.append(test_suite)
 from Products.ERP5.tests.testTask import *
 test_suite_list.append(test_suite)
+from Products.ERP5.tests.testTaskReporting import *
+test_suite_list.append(test_suite)
 from Products.ERP5.tests.testTaskReportDivergence import *
 test_suite_list.append(test_suite)
 
@@ -43,6 +45,10 @@ Legacy_getBusinessTemplateList(TestProje
 TestTaskMixin.business_process = None
 Legacy_getBusinessTemplateList(TestTaskMixin)
 
+TestTaskReporting.createBusinessProcess = lambda self: None
+Legacy_getBusinessTemplateList(TestTaskReporting)
+
+
 def test_suite():
   suite = test_suite_list[0]()
   for test_suite in test_suite_list[1:]:



More information about the Erp5-report mailing list