def test_20_000_job_event_functions_invalid_args(self): with self.assertRaises(OSError) as cm: for event in job.event_watch(self.fh, 123): print(event) self.assertEqual(cm.exception.errno, errno.ENOENT) with self.assertRaises(OSError) as cm: job.event_wait(self.fh, 123, "start") self.assertEqual(cm.exception.errno, errno.ENOENT) with self.assertRaises(OSError) as cm: job.event_wait(None, 123, "start") self.assertEqual(cm.exception.errno, errno.EINVAL)
def test_16_job_kill(self): self.sleep_jobspec = JobspecV1.from_command(["sleep", "1000"]) jobid = job.submit(self.fh, self.sleep_jobspec, waitable=True) # Wait for shell to fully start to avoid delay in signal job.event_wait(self.fh, jobid, name="start") job.event_wait( self.fh, jobid, name="shell.start", eventlog="guest.exec.eventlog" ) job.kill(self.fh, jobid, signum=signal.SIGKILL) fut = job.wait_async(self.fh, jobid=jobid).wait_for(5.0) return_id, success, errmsg = fut.get_status() self.assertEqual(return_id, jobid) self.assertFalse(success)
def test_20_006_job_event_wait(self): jobid = job.submit(self.fh, JobspecV1.from_command(["sleep", "0"])) self.assertTrue(jobid > 0) event = job.event_wait(self.fh, jobid, "start") self.assertIsInstance(event, job.EventLogEvent) self.assertEqual(event.name, "start") event = job.event_wait( self.fh, jobid, "shell.init", eventlog="guest.exec.eventlog" ) self.assertIsInstance(event, job.EventLogEvent) self.assertEqual(event.name, "shell.init") event = job.event_wait(self.fh, jobid, "clean") self.assertIsInstance(event, job.EventLogEvent) self.assertEqual(event.name, "clean") with self.assertRaises(OSError): job.event_wait(self.fh, jobid, "foo")
def test_20_007_job_event_wait_exception(self): event = None jobid = job.submit( self.fh, JobspecV1.from_command(["sleep", "0"], num_tasks=128) ) self.assertTrue(jobid > 0) try: event = job.event_wait(self.fh, jobid, "start") except job.JobException as err: self.assertEqual(err.severity, 0) self.assertEqual(err.type, "alloc") self.assertGreater(err.timestamp, 0.0) self.assertIs(event, None) try: event = job.event_wait(self.fh, jobid, "start", raiseJobException=False) except OSError as err: self.assertEqual(err.errno, errno.ENODATA) self.assertIs(event, None)