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()
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()
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()