def test_kill_1(self): jobs = [make_script(["sleep 100"])] jobid = SunGridEngine.sub(jobs, hold=True, name=inspect.stack()[0][3], shell="/bin/sh") time.sleep(5) self.assertTrue(SunGridEngine.stat(jobid)) SunGridEngine.kill(jobid) for f in jobs: os.unlink(f)
def test_hold_1(self): jobs = [make_script(["sleep 100"])] jobid = SunGridEngine.sub(jobs, hold=False, name=inspect.stack()[0][3], shell="/bin/sh", log=os.devnull) time.sleep(5) SunGridEngine.hold(jobid) SunGridEngine.kill(jobid) map(os.unlink, jobs)
def test_sub_3(self): jobs = [make_script(["sleep 1"]) for _ in range(5)] array_script, array_jobs = prep_array_script(jobs, os.getcwd(), SunGridEngine.TASK_ID) jobid = SunGridEngine.sub(array_script, array=[1, 5], hold=True, name=inspect.stack()[0][3], shell="/bin/sh") time.sleep(5) self.assertTrue(SunGridEngine.stat(jobid)) SunGridEngine.kill(jobid) for f in jobs + [array_script, array_jobs]: os.unlink(f)
def test_rls_1(self): jobs = [make_script(["touch", "pyjob_rls_test_1"])] jobid = SunGridEngine.sub(jobs, hold=True, name=inspect.stack()[0][3], shell="/bin/sh", log=os.devnull) time.sleep(5) SunGridEngine.rls(jobid) while SunGridEngine.stat(jobid): time.sleep(1) self.assertTrue(os.path.isfile('pyjob_rls_test_1')) os.unlink('pyjob_rls_test_1') for f in jobs: os.unlink(f)
def test_sub_2(self): assert "PYJOB_ENV" not in os.environ os.environ["PYJOB_ENV"] = "pyjob_random" job = [make_script(["echo $PYJOB_ENV"])] log = job[0].replace(".sh", ".log") jobid = SunGridEngine.sub(job, log=log, name=inspect.stack()[0][3], shell="/bin/sh") time.sleep(5) while SunGridEngine.stat(jobid): time.sleep(1) self.assertTrue(os.path.isfile(log)) self.assertTrue(open(log).read().strip(), "pyjob_random") for f in job + [log]: os.unlink(f)
def test_stat_1(self): jobs = [make_script(["sleep 100"])] jobid = SunGridEngine.sub(jobs, hold=True, name=inspect.stack()[0][3], shell="/bin/sh") time.sleep(5) data = SunGridEngine.stat(jobid) self.assertTrue(data) self.assertEqual(jobid, int(data['job_number'])) self.assertTrue('sge_o_shell' in data) self.assertTrue('sge_o_workdir' in data) self.assertTrue('sge_o_host' in data) SunGridEngine.kill(jobid) for f in jobs: os.unlink(f)
def test_sub_6(self): jobs = [ make_script(["echo $SGE_ROOT"], directory=os.getcwd()) for _ in range(2) ] array_script, array_jobs = prep_array_script(jobs, os.getcwd(), SunGridEngine.TASK_ID) jobid = SunGridEngine.sub(array_script, array=[1, 2], log=os.devnull, name=inspect.stack()[0][3], shell="/bin/sh") while SunGridEngine.stat(jobid): time.sleep(1) for i, j in enumerate(jobs): f = j.replace(".sh", ".log") self.assertTrue(os.path.isfile(f)) self.assertEqual(os.environ["SGE_ROOT"], open(f).read().strip()) os.unlink(f) for f in jobs + [array_script, array_jobs]: os.unlink(f)
def test_stat_2(self): jobs = [make_script(["sleep 100"]) for _ in range(5)] array_script, array_jobs = prep_array_script(jobs, os.getcwd(), SunGridEngine.TASK_ID) jobid = SunGridEngine.sub(array_script, array=[1, 5], hold=True, name=inspect.stack()[0][3], shell="/bin/sh") time.sleep(5) data = SunGridEngine.stat(jobid) SunGridEngine.kill(jobid) self.assertTrue(data) self.assertEqual(jobid, int(data['job_number'])) self.assertTrue('sge_o_shell' in data) self.assertTrue('sge_o_workdir' in data) self.assertTrue('sge_o_host' in data) self.assertTrue('job-array tasks' in data) self.assertEqual("1-5:1", data['job-array tasks'].strip()) for f in jobs + [array_script, array_jobs]: os.unlink(f)
def test_sub_5(self): directory = os.getcwd() jobs = [ make_script(['echo "file {0}"'.format(i)], directory=directory) for i in range(100) ] array_script, array_jobs = prep_array_script(jobs, directory, SunGridEngine.TASK_ID) jobid = SunGridEngine.sub(array_script, array=[1, 100], log=os.devnull, name=inspect.stack()[0][3], shell="/bin/sh") while SunGridEngine.stat(jobid): time.sleep(1) for i, j in enumerate(jobs): f = j.replace(".sh", ".log") self.assertTrue(os.path.isfile(f)) self.assertEqual("file {0}".format(i), open(f).read().strip()) os.unlink(f) for f in jobs + [array_script, array_jobs]: os.unlink(f)
def test_alt_1(self): jobs = [make_script(["sleep 100"])] jobid = SunGridEngine.sub(jobs, hold=True, name=inspect.stack()[0][3], shell="/bin/sh") time.sleep(5) SunGridEngine.alt(jobid, priority=-1) data = SunGridEngine.stat(jobid) self.assertTrue(data) self.assertEqual(jobid, int(data['job_number'])) self.assertEqual(-1, int(data['priority'])) SunGridEngine.kill(jobid) for f in jobs: os.unlink(f)