Example #1
0
    def test_missing_jobs_requests_are_aborted(self, mock_abort):
        ui = SchedulerUI(self.scheduler)

        ui._pause_job('non_existing_job')
        ui._resume_job('non_existing_job')
        ui._run_job('non_existing_job')

        self.assertEqual(3, mock_abort.call_count)

        mock_abort.reset_mock()

        response = ui._run_job(job_id=None)
        self.assertEqual(response.status_code, 404,
                         'Requests with missing job_id should fail')
Example #2
0
    def test_scheduler_commands_are_serialized(self, mock_pause, mock_abort):
        ui = SchedulerUI(self.scheduler, operation_timeout=0.01)

        with ui._scheduler_lock:
            # If we acquire the lock, every command we send to the web server should be aborted on lock acquire timeout.
            ui._pause_scheduler()

            mock_abort.assert_called()
            mock_pause.assert_not_called()

            ui._resume_scheduler()
            ui._stop_scheduler()
            ui._start_scheduler()
            ui._pause_job('a_job')
            ui._resume_job('a_job')
            ui._run_job('a_job')
            ui._remove_job('a_job')

            self.assertEqual(8, mock_abort.call_count)