[Erp5-report] r38364 seb - /erp5/trunk/products/ERP5/tests/testTask.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Sep 14 15:46:44 CEST 2010


Author: seb
Date: Tue Sep 14 15:46:43 2010
New Revision: 38364

URL: http://svn.erp5.org?rev=38364&view=rev
Log:
add a test to check the TaskConstraint propertysheet

Modified:
    erp5/trunk/products/ERP5/tests/testTask.py

Modified: erp5/trunk/products/ERP5/tests/testTask.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testTask.py?rev=38364&r1=38363&r2=38364&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testTask.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testTask.py [utf8] Tue Sep 14 15:46:43 2010
@@ -31,7 +31,8 @@ import unittest
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from AccessControl.SecurityManagement import newSecurityManager
 from DateTime import DateTime
-from Products.ERP5Type.tests.Sequence import SequenceList
+from Products.DCWorkflow.DCWorkflow import ValidationFailed
+from Products.ERP5Type.tests.Sequence import SequenceList, Sequence
 from Testing.ZopeTestCase.PortalTestCase import PortalTestCase
 
 class TestTaskMixin:
@@ -708,6 +709,48 @@ class TestTask(TestTaskMixin, ERP5TypeTe
       'T %s'%(new_task.getId(),)
     )
 
+  def test_07_taskConstraints(self):
+    """Check tasks constraints"""
+    self.stepLogin()
+    portal = self.getPortal()
+    portal_type = portal.portal_types['Task']
+    original_property_sheet_list = portal_type.getTypePropertySheetList()
+    try:
+      sequence = Sequence(context=self)
+      if not('TaskConstraint' in original_property_sheet_list):
+        new_property_sheet_list = ['TaskConstraint'] + original_property_sheet_list
+        portal_type.edit(type_property_sheet_list=new_property_sheet_list)
+      task_module = portal.getDefaultModule(portal_type=self.task_portal_type)
+      task = task_module.newContent(portal_type=self.task_portal_type)
+      doActionFor = self.portal.portal_workflow.doActionFor
+      self.assertRaises(ValidationFailed, doActionFor, task,
+                          'confirm_action')
+      sequence('CreateOrganisation')
+      sequence('CreateOrganisation')
+      sequence('CreateResource')
+      (source, destination) = sequence.get('organisation_list')
+      check_result = task.checkConsistency()
+      self.assertEquals(len(check_result), 4)
+      task.setDestinationValue(destination)
+      task.setSourceValue(source)
+      check_result = task.checkConsistency()
+      self.assertEquals(len(check_result), 2)
+      task.setStartDate(DateTime())
+      task.setStopDate(DateTime() + 1)
+      check_result = task.checkConsistency()
+      self.assertEquals(len(check_result), 1)
+      resource = sequence.get('resource_list')[0]
+      task.edit(task_line_resource_value = resource,
+                task_line_quantity = self.default_quantity,
+                task_line_price = self.default_price,
+      )
+      check_result = task.checkConsistency()
+      self.assertEquals(len(check_result), 0)
+
+    finally:
+      portal_type.setTypePropertySheetList(original_property_sheet_list)
+
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestTask))




More information about the Erp5-report mailing list