Example #1
0
    def test_job_state_transitions_pass(self):
        '''Tests state equality when the job passes first try'''
        job = Job(self.job_spec, 1, self.context)
        job.workload = Mock()

        self.context.cm._joblist = [job]
        self.context.run_state.add_job(job)

        runner = Runner(self.context, MockProcessorManager())
        runner.run()
Example #2
0
    def test_job_state_transitions_retry(self):
        '''Tests state equality when job fails initially'''
        job = Job_force_retry(1, self.job_spec, 1, self.context)
        job.workload = Mock()

        self.context.cm._joblist = [job]
        self.context.run_state.add_job(job)

        runner = Runner(self.context, MockProcessorManager())
        runner.run()
Example #3
0
    def test_job_retry_status(self):
        job_spec = JobSpec()
        job_spec.augmentations = {}
        job_spec.finalize()

        self.job = Job_force_retry(2, job_spec, 1, self.context)
        self.job.workload = Mock()

        self.context.cm._joblist = [self.job]
        self.context.run_state.add_job(self.job)

        runner = Runner(self.context, MockProcessorManager())
        runner.run()
    def test_normal_job_finalized(self):
        # Test that a job is initialized then finalized normally
        job_spec = get_jobspec()
        context = get_context()

        job = Job_force_retry(0, job_spec, 1, context)
        job.workload = Mock()

        context.cm._joblist = [job]
        context.run_state.add_job(job)

        runner = Runner(context, MockProcessorManager())
        runner.run()

        assert_equal(job.initialized, True)
        assert_equal(job.finalized, True)
    def test_job_retry_status(self):
        job_spec = get_jobspec()
        context = get_context()

        job = Job_force_retry(2, job_spec, 1, context)
        job.workload = Mock()

        context.cm._joblist = [job]
        context.run_state.add_job(job)

        verifier = lambda _: assert_equal(job.status, Status.PENDING)
        signal.connect(verifier, signal.JOB_RESTARTED)

        runner = Runner(context, MockProcessorManager())
        runner.run()
        signal.disconnect(verifier, signal.JOB_RESTARTED)
    def test_failed_job_finalized(self):
        # Test that a failed job, while the bail parameter is set,
        # is finalized
        job_spec = get_jobspec()
        context = get_context()

        context.cm.run_config.bail_on_job_failure = True

        job1 = Job_force_retry(3, job_spec, 1, context)
        job1.workload = Mock()

        context.cm._joblist = [job1]
        context.run_state.add_job(job1)

        runner = Runner(context, MockProcessorManager())
        try:
            runner.run()
        except ExecutionError:
            assert_equal(job1.finalized, True)
        else:
            assert False, "ExecutionError not raised"
    def test_skipped_job_finalized(self):
        # Test that a skipped job has been finalized
        job_spec = get_jobspec()
        context = get_context()

        context.cm.run_config.bail_on_job_failure = True

        job1 = Job_force_retry(3, job_spec, 1, context)
        job2 = Job_force_retry(0, job_spec, 1, context)
        job1.workload = Mock()
        job2.workload = Mock()

        context.cm._joblist = [job1, job2]
        context.run_state.add_job(job1)
        context.run_state.add_job(job2)

        runner = Runner(context, MockProcessorManager())
        try:
            runner.run()
        except ExecutionError:
            assert_equal(job2.finalized, True)
        else:
            assert False, "ExecutionError not raised"
    def test_skipped_job_state(self):
        # Test, if the first job fails and the bail parameter set,
        # that the remaining jobs have status: SKIPPED
        job_spec = get_jobspec()
        context = get_context()

        context.cm.run_config.bail_on_job_failure = True

        job1 = Job_force_retry(3, job_spec, 1, context)
        job2 = Job(job_spec, 1, context)
        job1.workload = Mock()
        job2.workload = Mock()

        context.cm._joblist = [job1, job2]
        context.run_state.add_job(job1)
        context.run_state.add_job(job2)

        runner = Runner(context, MockProcessorManager())
        try:
            runner.run()
        except ExecutionError:
            assert_equal(job2.status, Status.SKIPPED)
        else:
            assert False, "ExecutionError not raised"