def test_started_tasks_records_exception_if_update_fails(self, fake_log): expected_last_run_time = datetime.datetime(2013, 11, 11) event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', expected_last_run_time, retval=JobResult(JobExecutor.RETVAL_STARTED_TASKS, ['foo', 'bar'])) test_scheduled_job = Mock( next_run_time=datetime.datetime(2013, 12, 12)) self._sched.get_job.return_value = test_scheduled_job stored_job = Mock(id='test_id') self._dc.get.return_value = stored_job stored_job.annotate.side_effect = Exception self._target(event) stored_job.annotate.assert_called_with({ 'estimatedNextRun': test_scheduled_job.next_run_time, 'lastRun': expected_last_run_time, 'lastRunTasks': ['foo', 'bar'] }) fake_log.assert_called()
def test_successful_execute_logs_warning_if_unknown_retval(self, fake_log): expected_last_run_time = datetime.datetime(2013, 11, 11) event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', expected_last_run_time, retval=JobResult(9999)) self._target(event) self._dc.get.assert_not_called() fake_log.assert_called()
def test_checked_tasks_logs_warning_if_scheduled_job_not_found( self, fake_log): event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', datetime.datetime.now(), retval=JobResult(JobExecutor.RETVAL_CHECKED_TASKS)) self._sched.get_job.return_value = None self._target(event) self._dc.get.assert_not_called() fake_log.assert_called()
def test_started_tasks_logs_warning_if_scheduled_job_not_found( self, fake_log): expected_last_run_time = datetime.datetime(2013, 11, 11) event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', expected_last_run_time, retval=JobResult(JobExecutor.RETVAL_STARTED_TASKS)) self._sched.get_job.return_value = None self._target(event) self._dc.get.assert_not_called() fake_log.assert_called()
def test_checked_tasks_does_not_call_store_if_no_next_run(self): event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', datetime.datetime.now(), retval=JobResult(JobExecutor.RETVAL_CHECKED_TASKS)) test_scheduled_job = Mock(next_run_time=None) self._sched.get_job.return_value = test_scheduled_job stored_job = Mock(id='test_id') self._dc.get.return_value = stored_job self._target(event) stored_job.annotate.assert_not_called()
def test_checked_tasks_logs_warning_if_stored_job_not_found( self, fake_log): event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', datetime.datetime.now(), retval=JobResult(JobExecutor.RETVAL_CHECKED_TASKS)) test_scheduled_job = Mock( next_run_time=datetime.datetime(2013, 12, 12)) self._sched.get_job.return_value = test_scheduled_job self._dc.get.side_effect = JobNotFound('test_id') self._target(event) fake_log.assert_called()
def test_checked_tasks_updates_estimated_next_run(self): event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', datetime.datetime.now(), retval=JobResult(JobExecutor.RETVAL_CHECKED_TASKS)) test_scheduled_job = Mock( next_run_time=datetime.datetime(2013, 12, 12)) self._sched.get_job.return_value = test_scheduled_job stored_job = Mock(id='test_id') self._dc.get.return_value = stored_job self._target(event) stored_job.annotate.assert_called_with( {'estimatedNextRun': test_scheduled_job.next_run_time})
def test_started_tasks_omits_next_run_if_none(self): expected_last_run_time = datetime.datetime(2013, 11, 11) event = apscheduler.events.JobExecutionEvent( apscheduler.events.EVENT_JOB_EXECUTED, 'test_id', 'default', expected_last_run_time, retval=JobResult(JobExecutor.RETVAL_STARTED_TASKS, ['foo', 'bar'])) test_scheduled_job = Mock(next_run_time=None) self._sched.get_job.return_value = test_scheduled_job stored_job = Mock(id='test_id') self._dc.get.return_value = stored_job self._target(event) stored_job.annotate.assert_called_with({ 'lastRun': expected_last_run_time, 'lastRunTasks': ['foo', 'bar'] })
def test_set_all_attributes(self): info = [] result = JobResult(12, info) self.assertEqual(12, result.return_code) self.assertIs(info, result.task_info)
def test_set_default_attributes(self): result = JobResult(12) self.assertEqual(12, result.return_code) self.assertIsNone(result.task_info)