def test_36_month_end_2(self,): """Tests 28,29,30,31th of the month """ # Set a valid model content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_month('*') task.setScheduled_day_of_month('*') task.setScheduled_hour('10') task.setScheduled_minute('5') current_date=DateTime('2004/10/30 10:16') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004-10-31 10:05:00') == next_scheduled, DateTime('2004-10-31 10:05:00').ISO() + ' != ' + next_scheduled.ISO()) current_date=DateTime('2004/10/31 10:16') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004-11-01 10:05:00') == next_scheduled, DateTime('2004-11-01 10:05:00').ISO() + ' != ' + next_scheduled.ISO()) current_date=DateTime('2004/11/30 10:16') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004-12-01 10:05:00') == next_scheduled, DateTime('2004-12-01 10:05:00').ISO() + ' != ' + next_scheduled.ISO()) # leap year current_date=DateTime('2004/02/28 10:16') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004-02-29 10:05:00') == next_scheduled, DateTime('2004-02-29 10:05:00').ISO() + ' != ' + next_scheduled.ISO()) # non-leap year current_date=DateTime('2005/02/28 10:16') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2005-03-01 10:05:00') == next_scheduled, DateTime('2005-03-01 10:05:00').ISO() + ' != ' + next_scheduled.ISO())
def test_03_execution(self,): """ """ content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) date = getNoSecDate(DateTime()) self.failUnless(task.runTask(date)==0) # Didn't run as script is empty
def test_06_beforeIntervall(self,): """ """ # Set a valid model current_date=DateTime('2004/05/01 00:40') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004/05/01 00:40')==next_scheduled)
def test_04_beforeIntervall(self,): """ """ # Set a valid model current_date=DateTime('2004/05/16 15:40') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_hour('15') task.setScheduled_minute('20') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004/05/17 15:20') == next_scheduled, str(DateTime('2004/05/17 15:20')) + ' != ' + str(next_scheduled))
def test_18_month_hour(self,): """ """ # Set a valid model current_date=DateTime('2004/04/25 09:45') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_month('7') task.setScheduled_hour('11') next_scheduled = task.getNextScheduledExecutionTime(current_date) correct_date = DateTime('2004/07/01 11:00') self.failUnless(correct_date == next_scheduled, str(correct_date) +' != ' + str(next_scheduled))
def test_35_test_nextExectutionTime_with_invalid_date(self,): """ """ # Set a valid model current_date=DateTime('2004/04/25 09:45') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_month('11') task.setScheduled_day_of_month('31') task.setScheduled_hour('*') task.setScheduled_minute('*') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2500/12/31 00:00') == next_scheduled)
def test_14_month(self,): """ """ # Set a valid model current_date=DateTime('2004/04/25 09:45') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_month('12') task.setScheduled_day_of_month('*') task.setScheduled_hour('*') task.setScheduled_minute('*') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2004/12/01 00:00') == next_scheduled, str(DateTime('2004/12/01 00:00'))+' != ' + str(next_scheduled))
def test_09_nextMonth(self,): """ """ # Set a valid model current_date=DateTime('2004/05/17 10:16') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_month('4') task.setScheduled_day_of_month('1') task.setScheduled_hour('*') task.setScheduled_minute('*') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(DateTime('2005/04/01 00:00') == next_scheduled)
def test_26_minute_day(self,): """ """ # Set a valid model current_date=DateTime('2004/04/25 23:49') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_month('*') task.setScheduled_day_of_month('7') task.setScheduled_hour('*') task.setScheduled_minute('47') next_scheduled = task.getNextScheduledExecutionTime(current_date) correct_date = DateTime('2004/05/07 00:47') self.failUnless(correct_date == next_scheduled, str(correct_date) +' != ' + str(next_scheduled))
def test_02_isPending(self,): """ """ # Set a valid model current_date=getNoSecDate(DateTime()) content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) # Should be run this month task.setScheduled_month(str(current_date.month())) next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless( next_scheduled >= current_date, str(next_scheduled) + " not >= " + str(current_date))
def test_32_hour(self,): """ """ last_update=DateTime('2006/05/12 16:16') current_date=DateTime('2006/05/12 16:17') correct_next_scheduled = DateTime('2006/05/13') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.last_execution_date = last_update task.setScheduled_month('*') task.setScheduled_day_of_month('*') task.setScheduled_hour('0') task.setScheduled_minute('*') next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failIf(task.isPending(current_date)) self.failUnless(correct_next_scheduled == next_scheduled, str(correct_next_scheduled) +' != ' + str(next_scheduled))
def test_01_check_defaults(self,): """ """ # Set a valid model content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) self.failUnless(task.getProperty('scheduled_month')=='*') #self.failUnless(task.getProperty('scheduled_day_of_week')=='*') self.failUnless(task.getProperty('scheduled_day_of_month')=='*') self.failUnless(task.getProperty('scheduled_hour')=='*') self.failUnless(task.getProperty('scheduled_minute')=='*') self.failUnless(task.getProperty('script_name')=='') date = getNoSecDate(DateTime()) self.failUnless(task.isPending(date)==1) # By default always run. current_date=getNoSecDate(DateTime()) next_scheduled = task.getNextScheduledExecutionTime(current_date) self.failUnless(next_scheduled >= date, str(next_scheduled) + " not >= " + str(date))
def test_34_executiondate_when_script_working(self,): """ """ scriptsholder = self.portal.portal_maintenance.scripts # Plone Catalog update script manage_addExternalMethod(scriptsholder,'workingScript', 'Working Script', PROJECTNAME+'.MaintenanceToolbox', 'workingScript') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScript_name('workingScript') current_date=DateTime('2006/05/12 16:17') self.failUnless(task.isPending(current_date)) last_execution_date = task.last_execution_date self.portal.portal_maintenance.runTasks() task.runTask() self.failUnless(task.last_execution_date!=last_execution_date)
def test_31_setting_minute_differently(self,): """ """ last_update=DateTime('2006/05/05 16:05') current_date=DateTime('2006/05/11 16:38') correct_next_scheduled = DateTime('2006/05/12') content_id = "task1" addMaintenanceTask(self.portal, content_id, title = 'Task 1') task=getattr(self.portal, content_id) task.setScheduled_minute('1') self.failUnless(task.scheduled_minute=='1') task.setScheduled_minute(1) self.failUnless(task.scheduled_minute=='1') try: task.setScheduled_minute(120) except: pass self.failUnless(task.scheduled_minute=='1') try: task.setScheduled_minute('120') except: pass self.failUnless(task.scheduled_minute=='1')