コード例 #1
0
 def run_job(self, job, job_state, environ=None, ui=None):
     """
     Only one resouce object is created from this runner.
     Exception: 'graphics_card' resource job creates two objects to
     simulate hybrid graphics.
     """
     if job.plugin != 'resource':
         return super().run_job(job, job_state, environ, ui)
     builder = JobResultBuilder()
     if job.partial_id == 'graphics_card':
         builder.io_log = [(0, 'stdout', b'a: b\n'), (1, 'stdout', b'\n'),
                           (2, 'stdout', b'a: c\n')]
     else:
         builder.io_log = [(0, 'stdout', b'a: b\n')]
     builder.outcome = 'pass'
     builder.return_code = 0
     return builder.get_result()
コード例 #2
0
 def _make_result_for(self, job):
     builder = JobResultBuilder(outcome='pass')
     if job.plugin == 'local':
         pass
     elif job.plugin == 'resource':
         pass
     else:
         builder.io_log = [(0, 'stdout', b'IO-LOG-STDOUT\n'),
                           (1, 'stderr', b'IO-LOG-STDERR\n')]
     return builder.get_result()
コード例 #3
0
 def test_smoke_memory(self):
     builder = JobResultBuilder()
     builder.comments = 'it works'
     builder.execution_duration = 0.1
     builder.io_log = [(0, 'stdout', b'ok\n')]
     builder.outcome = 'pass'
     builder.return_code = 0
     result = builder.get_result()
     self.assertEqual(result.comments, "it works")
     self.assertEqual(result.execution_duration, 0.1)
     self.assertEqual(
         result.io_log,
         (IOLogRecord(delay=0, stream_name='stdout', data=b'ok\n'), ))
     self.assertEqual(result.outcome, "pass")
     self.assertEqual(result.return_code, 0)
     # Sanity check: the builder we can re-create is identical
     builder2 = result.get_builder()
     self.assertEqual(builder, builder2)
コード例 #4
0
 def test_io_log_clash(self):
     builder = JobResultBuilder()
     builder.io_log = [(0, 'stout', b'hi')]
     builder.io_log_filename = 'log'
     with self.assertRaises(ValueError):
         builder.get_result()