[Erp5-report] r13518 - /erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Mar 20 13:35:36 CET 2007


Author: vincent
Date: Tue Mar 20 13:35:33 2007
New Revision: 13518

URL: http://svn.erp5.org?rev=13518&view=rev
Log:
Add assertWorkflowTransitionFails, new ERP5 and workflow specific method to help factorizing unit test code where a workflow transition is supposed to fail.

Modified:
    erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py

Modified: erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py?rev=13518&r1=13517&r2=13518&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py (original)
+++ erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py Tue Mar 20 13:35:33 2007
@@ -491,6 +491,24 @@
       self.assertEquals(len(a), len(b), msg)
     assertSameSet = failIfDifferentSet
 
+    def assertWorkflowTransitionFails(self, object, workflow_id, transition_id, error_message=None):
+      """
+        Check that passing given transition from given workflow on given object
+        raises ValidationFailed.
+        Do sanity checks (workflow history length increased by one, simulation
+        state unchanged).
+        If error_message is provided, it is asserted to be equal to the last
+        workflow history error message.
+      """
+      reference_history_length = len(self.workflow_tool.getInfoFor(ob=self.account_incident, name='history', wf_id=workflow_id))
+      reference_workflow_state = object.getSimulationState()
+      self.assertRaises(ValidationFailed, self.workflow_tool.doActionFor, self.account_incident, transition_id, wf_id=workflow_id)
+      workflow_history = self.workflow_tool.getInfoFor(ob=self.account_incident, name='history', wf_id=workflow_id)
+      self.assertEqual(len(workflow_history), reference_history_length + 1)
+      if error_message is not None:
+        self.assertEqual(str(workflow_history[-1]['error_message']), error_message)
+      self.assertEqual(object.getSimulationState(), reference_workflow_state)
+
 def setupERP5Site( business_template_list=(),
                    app=None,
                    portal_name=portal_name,




More information about the Erp5-report mailing list