[Patchew-devel] [PATCH 03/12] testing: include "pending" testing results in REST API
Paolo Bonzini
pbonzini at redhat.com
Tue May 22 06:57:31 UTC 2018
If a test can be done but has not been started yet, its status should be "pending".
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
---
mods/testing.py | 9 +++++++++
tests/test_testing.py | 4 ++++
2 files changed, 13 insertions(+)
diff --git a/mods/testing.py b/mods/testing.py
index a791493..824df15 100644
--- a/mods/testing.py
+++ b/mods/testing.py
@@ -252,10 +252,15 @@ class TestingModule(PatchewModule):
return ret
def rest_results_hook(self, request, obj, results, detailed=False):
+ all_tests = set([k for k, v in _instance.get_tests(obj).items() if v["enabled"]])
for pn, p in obj.get_properties().items():
if not pn.startswith("testing.report."):
continue
tn = pn[len("testing.report."):]
+ try:
+ all_tests.remove(tn)
+ except:
+ pass
failed = not p["passed"]
log_url = self.reverse_testing_log(obj, tn, request=request, html=False)
passed_str = Result.FAILURE if failed else Result.SUCCESS
@@ -270,6 +275,10 @@ class TestingModule(PatchewModule):
log=log, log_url=log_url, request=request, data=data,
renderer=self))
+ if obj.get_property("testing.ready"):
+ for tn in all_tests:
+ results.append(Result(name='testing.' + tn, obj=obj, status='pending'))
+
def prepare_message_hook(self, request, message, detailed):
if not message.is_series_head:
return
diff --git a/tests/test_testing.py b/tests/test_testing.py
index 73d13f1..8f831a1 100755
--- a/tests/test_testing.py
+++ b/tests/test_testing.py
@@ -91,6 +91,10 @@ class TestingTestCase(PatchewTestCase, metaclass=abc.ABCMeta):
capabilities=[])
self.assertFalse(td)
+ def test_rest_basic(self):
+ resp = self.get_test_result('a')
+ self.assertEquals(resp.data['status'], 'pending')
+
def test_rest_done_success(self):
self.do_testing_done(log='everything good!', passed=True)
resp = self.get_test_result('tests')
--
2.17.0
More information about the Patchew-devel
mailing list