[Erp5-report] r23227 - /erp5/trunk/products/ERP5/tests/testAlarm.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Aug 28 14:32:30 CEST 2008


Author: aurel
Date: Thu Aug 28 14:32:21 2008
New Revision: 23227

URL: http://svn.erp5.org?rev=23227&view=rev
Log:
add test to check the execution order of alarm's activities 

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

Modified: erp5/trunk/products/ERP5/tests/testAlarm.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testAlarm.py?rev=23227&r1=23226&r2=23227&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testAlarm.py (original)
+++ erp5/trunk/products/ERP5/tests/testAlarm.py Thu Aug 28 14:32:21 2008
@@ -494,8 +494,6 @@
     get_transaction().commit()
     self.tic()
 
-    get_transaction().commit()
-    self.tic()
     sense_method_id = 'Alarm_testSenseMethodForTic'
     skin_folder_id = 'custom'
     skin_folder = self.getPortal().portal_skins[skin_folder_id]
@@ -521,6 +519,57 @@
     alarm_tool.tic()
     self.assertEquals(alarm.getDescription(), 'a')
 
+  def test_18_alarm_activities_execution_order(self, quiet=0, run=run_all_test):
+    """
+    Make sure active process created by an alarm get the rigth tag
+    """
+    if not run: return
+    if not quiet:
+      message = 'Test Activities execution order'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ', 0, message)
+
+    alarm = self.newAlarm()
+    # Create script that generate active process
+    sense_method_id = 'Alarm_createActiveProcessSenseMethod'
+    skin_folder_id = 'custom'
+    skin_folder = self.getPortal().portal_skins[skin_folder_id]
+    skin_folder.manage_addProduct['PythonScripts']\
+        .manage_addPythonScript(id=sense_method_id)
+    skin_folder[sense_method_id].ZPythonScript_edit('*args,**kw', 
+          'context.newActiveProcess()')
+    # update alarm properties
+    alarm.edit(alarm_notification_mode="always",
+               active_sense_method_id=sense_method_id,
+               enabled=True)
+    get_transaction().commit()
+    self.tic()
+    alarm.activeSense()
+    get_transaction().commit()
+    messages_list = self.getActivityTool().getMessageList()
+    self.assertEquals(2, len(messages_list))
+    # check tags after activeSense
+    for m in messages_list:
+      if m.method_id == 'notify':
+        self.assertEquals(m.activity_kw.get('after_tag'), '1')
+      elif m.method_id == sense_method_id:
+        self.assertEquals(m.activity_kw.get('tag'), '1')
+      else:
+        raise AssertionError, m.method_id
+    # execute alarm sense script and check tags
+    self.getActivityTool().manageInvoke(alarm.getPhysicalPath(),sense_method_id)
+    get_transaction().commit()
+    messages_list = self.getActivityTool().getMessageList()
+    for m in messages_list:
+      if m.method_id == 'notify':
+        self.assertEquals(m.activity_kw.get('after_tag'), '1')
+      elif m.method_id == 'immediateReindexObject':
+        self.assertEquals(m.activity_kw.get('tag'), '1')
+      else:
+        raise AssertionError, m.method_id
+
+    
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestAlarm))




More information about the Erp5-report mailing list