def test_encode_resource_job(self): self.job_R = make_job("R", plugin="resource") result_R = JobResult({ 'job': self.job_R, 'outcome': JobResult.OUTCOME_PASS, 'io_log': ((0, 'stdout', "attr: value\n"), ) }) jobstate = JobState(self.job_R) jobstate.result = result_R jobstate_enc = jobstate._get_persistance_subset() # The inhibitor list is not saved with self.assertRaises(KeyError): jobstate_enc['_readiness_inhibitor_list'] # Resource have to be re evealutated on startup, outcome of the job # must be reset to JobResult.OUTCOME_NONE self.assertEqual(jobstate_enc['_result'].outcome, JobResult.OUTCOME_NONE)
def run(self): job = self._get_job() if job is None: print(_("There is no job called {!a}").format(self.job_id)) print( _("See `plainbox special --list-jobs` for a list of choices")) return 126 elif job.command is None: print(_("Selected job does not have a command")) return 125 with TemporaryDirectory() as scratch, TemporaryDirectory() as iologs: runner = JobRunner(scratch, self.provider_list, iologs) job_state = JobState(job) ctrl = runner._get_ctrl_for_job(job) runner.log_leftovers = False runner.on_leftover_files.connect(self._on_leftover_files) return_code, record_path = runner._run_command( job, job_state, self.config, ctrl) self._display_script_outcome(job, return_code) return return_code
def setUp(self): self.job = make_job("A") self.job_state = JobState(self.job)