[Erp5-report] r20288 - in /erp5/trunk/products/ERP5: Document/Alarm.py tests/testAlarm.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Apr 3 11:30:05 CEST 2008


Author: seb
Date: Thu Apr  3 11:30:04 2008
New Revision: 20288

URL: http://svn.erp5.org?rev=20288&view=rev
Log:
- Do not make tic on activity tool failing when the periodicity
start date is not working.
- Add a test to show that tic is working on alarm tool even if
  a periodicity start date is not defined on a particular alarm

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

Modified: erp5/trunk/products/ERP5/Document/Alarm.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Alarm.py?rev=20288&r1=20287&r2=20288&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Alarm.py (original)
+++ erp5/trunk/products/ERP5/Document/Alarm.py Thu Apr  3 11:30:04 2008
@@ -510,17 +510,16 @@
     """
     returns something like ['Sunday','Monday',...]
     """
-    #alarm_date = self._baseGetAlarmDate()
-    #if alarm_date is None:
-    #  alarm_date = self.getPeriodicityStartDate()
     alarm_date=None
-    result_list = self.Alarm_zGetAlarmDate(uid=self.getUid())
-    if len(result_list)==1:
-      alarm_date = result_list[0].alarm_date
-      periodicity_start_date = self.getPeriodicityStartDate()
-      if alarm_date < periodicity_start_date:
-        alarm_date = periodicity_start_date
-      # convert the date to the user provided timezone
-      alarm_zone = periodicity_start_date.timezone()
-      alarm_date = alarm_date.toZone(alarm_zone)
+    # No periodicity start date, return None
+    if self.getPeriodicityStartDate() is not None:
+      result_list = self.Alarm_zGetAlarmDate(uid=self.getUid())
+      if len(result_list)==1:
+        alarm_date = result_list[0].alarm_date
+        periodicity_start_date = self.getPeriodicityStartDate()
+        if alarm_date < periodicity_start_date:
+          alarm_date = periodicity_start_date
+        # convert the date to the user provided timezone
+        alarm_zone = periodicity_start_date.timezone()
+        alarm_date = alarm_date.toZone(alarm_zone)
     return alarm_date

Modified: erp5/trunk/products/ERP5/tests/testAlarm.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testAlarm.py?rev=20288&r1=20287&r2=20288&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testAlarm.py (original)
+++ erp5/trunk/products/ERP5/tests/testAlarm.py Thu Apr  3 11:30:04 2008
@@ -444,7 +444,7 @@
 
   def test_16_uncatalog(self, quiet=0, run=run_all_test):
     """
-    Check that deleting a alarm uncatalogs it.
+    Check that deleting an alarm uncatalogs it.
     """
     if not run: return
     if not quiet:
@@ -480,6 +480,47 @@
     result = sql_connection.manage_test(sql)
     self.assertEquals(0, len(result))
 
+  def test_17_tic(self, quiet=0, run=run_all_test):
+    """
+    Make sure that the tic method on alarm is working
+    """
+    if not run: return
+    if not quiet:
+      message = 'Test AlarmTool Tic'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ', 0, message)
+    alarm = self.newAlarm()
+    alarm.setEnabled(True)
+    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]
+    skin_folder.manage_addProduct['PythonScripts']\
+        .manage_addPythonScript(id=sense_method_id)
+    # Make the sense method fail
+    skin_folder[sense_method_id].ZPythonScript_edit('*args,**kw', 
+          'context.setDescription("a")')
+    del skin_folder
+    alarm.setActiveSenseMethodId(sense_method_id)
+    get_transaction().commit()
+    self.tic()
+    alarm_tool = self.getPortal().portal_alarms
+    # Nothing should happens yet
+    alarm_tool.tic()
+    self.assertTrue(alarm.getDescription() in (None, ''))
+    now = DateTime()
+    date = addToDate(now, day=1)
+    alarm.setPeriodicityStartDate(date)
+    alarm.setPeriodicityMinuteFrequency(1)
+    get_transaction().commit()
+    self.tic()
+    alarm_tool.tic()
+    self.assertEquals(alarm.getDescription(), 'a')
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestAlarm))




More information about the Erp5-report mailing list