Example #1
0
    def test_on_job_succeeded(self, mock_cluster_api):
        watcher = JobWatcher(config=Mock())
        watcher.lando_client = Mock()

        watcher.on_job_succeeded('31', JobStepTypes.STAGE_DATA)
        watcher.lando_client.job_step_store_output_complete.assert_not_called()
        payload = watcher.lando_client.job_step_complete.call_args[0][0]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.success_command, JobCommands.STAGE_JOB_COMPLETE)

        watcher.lando_client.job_step_complete.reset_mock()

        watcher.on_job_succeeded('31', JobStepTypes.RUN_WORKFLOW)
        watcher.lando_client.job_step_store_output_complete.assert_not_called()
        payload = watcher.lando_client.job_step_complete.call_args[0][0]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.success_command, JobCommands.RUN_JOB_COMPLETE)

        watcher.lando_client.job_step_complete.reset_mock()

        watcher.on_job_succeeded('31', JobStepTypes.ORGANIZE_OUTPUT)
        watcher.lando_client.job_step_store_output_complete.assert_not_called()
        payload = watcher.lando_client.job_step_complete.call_args[0][0]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.success_command, JobCommands.ORGANIZE_OUTPUT_COMPLETE)

        watcher.lando_client.job_step_complete.reset_mock()

        watcher.on_job_succeeded('31', JobStepTypes.SAVE_OUTPUT)
        watcher.lando_client.job_step_complete.assert_not_called()
        payload = watcher.lando_client.job_step_store_output_complete.call_args[0][0]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.success_command, JobCommands.STORE_JOB_OUTPUT_COMPLETE)
Example #2
0
    def test_on_job_succeeded_record_output(self, mock_cluster_api):
        watcher = JobWatcher(config=Mock())
        watcher.lando_client = Mock()

        watcher.on_job_succeeded('31', JobStepTypes.RECORD_OUTPUT_PROJECT)
        watcher.lando_client.job_step_store_output_complete.assert_not_called()
        payload = watcher.lando_client.job_step_complete.call_args[0][0]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.success_command, JobCommands.RECORD_OUTPUT_PROJECT_COMPLETE)
Example #3
0
    def test_on_job_failed_reading_logs_failed(self, mock_logging, mock_cluster_api):
            mock_cluster_api.return_value.read_job_logs.side_effect = ApiException(status=404, reason='Logs not found')
            watcher = JobWatcher(config=Mock())
            watcher.get_most_recent_pod_for_job = Mock()
            watcher.get_most_recent_pod_for_job.return_value = Mock()
            watcher.lando_client = Mock()

            watcher.on_job_failed('myjob', '31', JobStepTypes.STAGE_DATA)
            payload = watcher.lando_client.job_step_error.call_args[0][0]
            message = watcher.lando_client.job_step_error.call_args[0][1]
            self.assertEqual(payload.job_id, '31')
            self.assertEqual(payload.error_command, JobCommands.STAGE_JOB_ERROR)
            self.assertEqual(message, 'Unable to read logs.')
            mock_logging.error.assert_called_with('Unable to read logs (404)\nReason: Logs not found\n')
Example #4
0
    def test_on_job_failed(self, mock_cluster_api):
        mock_cluster_api.return_value.read_job_logs.return_value = "Error details"
        watcher = JobWatcher(config=Mock())
        watcher.lando_client = Mock()

        watcher.on_job_failed('myjob', '31', JobStepTypes.STAGE_DATA)
        mock_cluster_api.return_value.read_job_logs.assert_called_with('myjob')
        payload = watcher.lando_client.job_step_error.call_args[0][0]
        message = watcher.lando_client.job_step_error.call_args[0][1]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.error_command, JobCommands.STAGE_JOB_ERROR)
        self.assertEqual(message, 'Error details')

        watcher.lando_client.job_step_complete.reset_mock()

        watcher.on_job_failed('myjob', '31', JobStepTypes.RUN_WORKFLOW)
        payload = watcher.lando_client.job_step_error.call_args[0][0]
        message = watcher.lando_client.job_step_error.call_args[0][1]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.error_command, JobCommands.RUN_JOB_ERROR)
        self.assertEqual(message, 'Error details')

        watcher.lando_client.job_step_complete.reset_mock()

        watcher.on_job_failed('myjob', '31', JobStepTypes.ORGANIZE_OUTPUT)
        payload = watcher.lando_client.job_step_error.call_args[0][0]
        message = watcher.lando_client.job_step_error.call_args[0][1]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.error_command, JobCommands.ORGANIZE_OUTPUT_ERROR)
        self.assertEqual(message, 'Error details')

        watcher.lando_client.job_step_complete.reset_mock()

        watcher.on_job_failed('myjob', '31', JobStepTypes.SAVE_OUTPUT)
        payload = watcher.lando_client.job_step_error.call_args[0][0]
        message = watcher.lando_client.job_step_error.call_args[0][1]
        self.assertEqual(payload.job_id, '31')
        self.assertEqual(payload.error_command, JobCommands.STORE_JOB_OUTPUT_ERROR)
        self.assertEqual(message, 'Error details')