From f78f3163c024893c38ebb987abbfd731e8bb546a Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Thu, 3 Oct 2013 16:23:15 -0500 Subject: [PATCH] Add more tests for ReportSerializer Signed-off-by: Zack Cerza --- teuthology/test/fake_archive.py | 3 +++ teuthology/test/test_report.py | 48 +++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/teuthology/test/fake_archive.py b/teuthology/test/fake_archive.py index ce804e8b5e6c8..0a4f2af1acdbe 100644 --- a/teuthology/test/fake_archive.py +++ b/teuthology/test/fake_archive.py @@ -83,6 +83,8 @@ class FakeArchive(object): """ 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 @@ -96,4 +98,5 @@ class FakeArchive(object): 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 diff --git a/teuthology/test/test_report.py b/teuthology/test/test_report.py index 6b943cef93b7a..26501afd4e8d8 100644 --- a/teuthology/test/test_report.py +++ b/teuthology/test/test_report.py @@ -1,8 +1,10 @@ +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() @@ -12,11 +14,53 @@ class TestReport(object): 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 + -- 2.39.5