diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-09-20 13:00:31 +0200 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-10-11 12:13:54 +0200 |
commit | 5af27cd2c173487f3930da9a00ca0d855e926d43 (patch) | |
tree | b7ae862b71ae8400a2788d9b66699b7c950e9e00 | |
parent | 6418a14fedfe4221863a95154921e5ff0c72db38 (diff) |
framework: add various helper functions to TestResult
-rw-r--r-- | framework/results.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/framework/results.py b/framework/results.py index 26ebbe7a6..c13379b3e 100644 --- a/framework/results.py +++ b/framework/results.py @@ -209,6 +209,52 @@ class TestResult(object): except KeyError: raise KeyError(key) + def set_result(self, key, status): + """Set the result status of a (sub-)test covered by this object. + + Raises KeyError if the test is not covered. + """ + relative = grouptools.relative(self.root, key) + + if relative == '': + if self.subtests: + raise KeyError(key) + self.result = status + return + + if relative not in self.subtests: + raise KeyError(key) + + self.subtests[relative] = status + + @property + def tests(self): + """Iterator over the names of tests covered by this object.""" + if self.subtests: + for subtest in six.iterkeys(self.subtests): + yield grouptools.join(self.root, subtest) + else: + yield self.root + + def add_test(self, key): + """Add a (sub-)test to the tests covered by this object.""" + relative = grouptools.relative(self.root, key) + + if relative == '': + assert not self.subtests + return # Nothing to be done + + self.subtests[relative] = status.NOTRUN + + def have_test(self, key): + """Whether a given (sub-)test is covered by this object.""" + relative = grouptools.relative(self.root, key) + + if relative == '': + return not self.subtests + + return relative in self.subtests + def to_json(self): """Return the TestResult as a json serializable object.""" obj = { |