"""
Creates a fake run using run_name. Uses the YAML specified for each
job's config.yaml
+
+ Returns a list of job_ids
"""
assert os.path.exists(yaml_path)
assert job_count > 0
job_yaml_path = os.path.join(self.archive_base, run_name,
str(job_id), 'config.yaml')
shutil.copyfile(yaml_path, job_yaml_path)
+ return jobs
+import yaml
+import json
import fake_archive
from .. import report
-class TestReport(object):
+class TestSerializer(object):
def setup(self):
self.archive = fake_archive.FakeArchive()
self.archive.setup()
def teardown(self):
self.archive.teardown()
- def test_all_runs(self):
+ def test_all_runs_one_run(self):
run_name = "test_all_runs"
yaml_path = "examples/3node_ceph.yaml"
job_count = 3
self.archive.create_fake_run(run_name, job_count, yaml_path)
assert [run_name] == self.reporter.serializer.all_runs
+ def test_all_runs_three_runs(self):
+ run_count = 3
+ runs = {}
+ for i in range(run_count):
+ run_name = "run #%s" % i
+ yaml_path = "examples/3node_ceph.yaml"
+ job_count = 3
+ job_ids = self.archive.create_fake_run(
+ run_name,
+ job_count,
+ yaml_path)
+ runs[run_name] = job_ids
+ assert sorted(runs.keys()) == sorted(self.reporter.serializer.all_runs)
+
+ def test_jobs_for_run(self):
+ run_name = "test_jobs_for_run"
+ yaml_path = "examples/3node_ceph.yaml"
+ job_count = 3
+ jobs = self.archive.create_fake_run(run_name, job_count, yaml_path)
+ job_ids = [str(job['job_id']) for job in jobs]
+
+ got_jobs = self.reporter.serializer.jobs_for_run(run_name)
+ assert sorted(job_ids) == sorted(got_jobs.keys())
+
+ def test_json_for_job(self):
+ run_name = "test_json_for_job"
+ yaml_path = "examples/3node_ceph.yaml"
+ job_count = 1
+ jobs = self.archive.create_fake_run(run_name, job_count, yaml_path)
+ job = jobs[0]
+
+ with file(yaml_path) as yaml_file:
+ obj_from_yaml = yaml.safe_load(yaml_file)
+ full_obj = obj_from_yaml.copy()
+ full_obj.update(job['info'])
+ full_obj.update(job['summary'])
+
+ out_json = self.reporter.serializer.json_for_job(
+ run_name, str(job['job_id']))
+ out_obj = json.loads(out_json)
+ assert full_obj == out_obj
+