def test_11_cwd_pathlib(self): jobspec_path = pathlib.PosixPath( self.jobspec_dir) / "valid" / "basic_v1.yaml" jobspec = Jobspec.from_yaml_file(jobspec_path) cwd = pathlib.PosixPath("/tmp") jobspec.cwd = cwd self.assertEqual(jobspec.cwd, os.fspath(cwd))
def test_21_stdio(self): """Test getter/setter methods for stdio properties""" jobspec = Jobspec.from_yaml_stream(self.basic_jobspec) for stream in ("stderr", "stdout", "stdin"): self.assertEqual(getattr(jobspec, stream), None) for path in ("foo.txt", "bar.md", "foo.json"): setattr(jobspec, stream, path) self.assertEqual(getattr(jobspec, stream), path)
def test_07_count(self): jobspec_fname = os.path.join(self.jobspec_dir, "valid", "use_case_2.4.yaml") jobspec = Jobspec.from_yaml_file(jobspec_fname) count_dict = jobspec.resource_counts() self.assertEqual(count_dict["node"], 1) self.assertEqual(count_dict["slot"], 11) self.assertEqual(count_dict["core"], 16) self.assertEqual(count_dict["memory"], 64)
def test_06_iter(self): jobspec_fname = os.path.join(self.jobspec_dir, "valid", "use_case_2.4.yaml") jobspec = Jobspec.from_yaml_file(jobspec_fname) self.assertEqual(len(list(jobspec)), 7) self.assertEqual( len(list([x for x in jobspec if x["type"] == "core"])), 2) self.assertEqual( len(list([x for x in jobspec if x["type"] == "slot"])), 2)
def test_09_valid_duration(self): """Test setting Jobspec duration to various valid values""" jobspec = Jobspec.from_yaml_stream(self.basic_jobspec) for duration in (100, 100.5): delta = datetime.timedelta(seconds=duration) for x in [duration, delta, "{}s".format(duration)]: jobspec.duration = x # duration setter converts value to a float self.assertEqual(jobspec.duration, float(duration))
def test_10_invalid_duration(self): """Test setting Jobspec duration to various invalid values and types""" jobspec = Jobspec.from_yaml_stream(self.basic_jobspec) for duration in (-100, -100.5, datetime.timedelta(seconds=-5), "10h5m"): with self.assertRaises(ValueError): jobspec.duration = duration for duration in ([], {}): with self.assertRaises(TypeError): jobspec.duration = duration
def test_04_valid_construction(self): for jobspec_filepath in glob( os.path.join(self.jobspec_dir, "valid", "*.yaml")): Jobspec.from_yaml_file(jobspec_filepath)
def test_12_environment(self): jobspec = Jobspec.from_yaml_stream(self.basic_jobspec) new_env = {"HOME": "foo", "foo": "bar"} jobspec.environment = new_env self.assertEqual(jobspec.environment, new_env)
def test_08_jobspec_submit(self): jobspec = Jobspec.from_yaml_stream(self.basic_jobspec) jobid = job.submit(self.fh, jobspec) self.assertGreater(jobid, 0)