From f54885c0658470aa684cb4bf49f30f287487e5f5 Mon Sep 17 00:00:00 2001
From: Leonardo Rochael Almeida <leonardo@nexedi.com>
Date: Wed, 20 Jan 2010 21:04:53 +0000
Subject: [PATCH] fix the remaining testAlarm failures: clean-up the left-over
 activities and capture outgoing e-mails

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31854 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testAlarm.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/product/ERP5/tests/testAlarm.py b/product/ERP5/tests/testAlarm.py
index cd1650d4d6..712f2c8e24 100644
--- a/product/ERP5/tests/testAlarm.py
+++ b/product/ERP5/tests/testAlarm.py
@@ -31,6 +31,7 @@ import transaction
 
 from Testing import ZopeTestCase
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.ERP5Type.tests.utils import DummyMailHost
 from AccessControl.SecurityManagement import newSecurityManager, \
         getSecurityManager, setSecurityManager
 from AccessControl import Unauthorized
@@ -67,8 +68,20 @@ class TestAlarm(ERP5TypeTestCase):
     return "Alarm"
 
   def afterSetUp(self):
+    # add a dummy mailhost to capture alarm notifications
+    if 'MailHost' in self.portal.objectIds():
+      self.portal.manage_delObjects(['MailHost'])
+      self.portal._setObject('MailHost', DummyMailHost('MailHost'))
+
     self.login()
 
+  def beforeTearDown(self):
+    transaction.commit()
+    self.getActivityTool().manageClearActivities()
+    transaction.commit()
+    del self.portal.MailHost._message_list[:]
+    ERP5TypeTestCase.beforeTearDown(self)
+
   def newAlarm(self, **kw):
     """
     Create an empty alarm
@@ -552,7 +565,7 @@ class TestAlarm(ERP5TypeTestCase):
 
   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
+    Make sure active process created by an alarm get the right tag
     """
     if not run: return
     if not quiet:
@@ -614,7 +627,7 @@ class TestAlarm(ERP5TypeTestCase):
     # Create script that generate active process
     sense_method_id = 'Alarm_setBogusLocalProperty'
     skin_folder_id = 'custom'
-    skin_folder = self.getPortal().portal_skins[skin_folder_id]
+    skin_folder = self.portal.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', 
-- 
2.30.9