コード例 #1
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)
コード例 #2
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)
コード例 #3
0
    def test_on_job_change_with_complete_job(self, mock_cluster_api):
        watcher = JobWatcher(config=Mock())
        watcher.on_job_succeeded = Mock()
        watcher.on_job_failed = Mock()
        job = Mock()
        job.metadata.name = 'job1'
        job.metadata.labels = {
            JobLabels.JOB_ID: '32',
            JobLabels.STEP_TYPE: JobStepTypes.STAGE_DATA,
        }
        job.status.conditions = [Mock(type=JobConditionType.COMPLETE, status="True")]
        watcher.on_job_change({
            'type': EventTypes.MODIFIED,
            'object': job
        })

        watcher.on_job_succeeded.assert_called_with('32', 'stage_data')
        watcher.on_job_failed.assert_not_called()
コード例 #4
0
    def test_on_job_change_missing_labels(self, mock_cluster_api):
        watcher = JobWatcher(config=Mock())
        watcher.on_job_succeeded = Mock()
        watcher.on_job_failed = Mock()
        job = Mock()
        job.metadata.name = 'job1'
        job.metadata.labels = {}
        job.status.conditions = [
            Mock(type=JobConditionType.COMPLETE, status="True"),
            Mock(type=JobConditionType.FAILED, status="True"),
        ]
        watcher.on_job_change({
            'type': EventTypes.ADDED,
            'object': job
        })

        watcher.on_job_succeeded.assert_not_called()
        watcher.on_job_failed.assert_not_called()
コード例 #5
0
    def test_on_job_change_with_ignored_conditions(self, mock_cluster_api):
        watcher = JobWatcher(config=Mock())
        watcher.on_job_succeeded = Mock()
        watcher.on_job_failed = Mock()
        job = Mock()
        job.metadata.name = 'job1'
        job.metadata.labels = {
            JobLabels.JOB_ID: '32',
            JobLabels.STEP_TYPE: JobStepTypes.STAGE_DATA,
        }
        job.status.conditions = [
            Mock(type=JobConditionType.COMPLETE, status="False"),
            Mock(type=JobConditionType.FAILED, status="False"),
            Mock(type="other", status="True"),
        ]
        watcher.on_job_change({
            'type': EventTypes.ADDED,
            'object': job
        })

        watcher.on_job_succeeded.assert_not_called()
        watcher.on_job_failed.assert_not_called()