selftests.unit: Add jsonresult tests

This selftest makes sure test statuses are assessed correctly on the
test end inside jsonresult (which also verifies TestResult handling).

Additionally it makes sure jsonresult handles unknown statuses and
missing values in the status correctly.
Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
上级 f2ab3070
......@@ -51,6 +51,39 @@ class JSONResultTest(unittest.TestCase):
self.assertTrue(obj)
self.assertEqual(len(obj['tests']), 1)
def testAddSeveralStatuses(self):
def run_fake_status(status):
self.test_result.start_test(self.test1)
self.test_result.check_test(status)
def check_item(name, value, exp):
self.assertEqual(value, exp, "Result%s is %s and not %s\n%s"
% (name, value, exp, res))
# Set the number of tests to all tests + 3
self.test_result.tests_total = 13
# Full PASS status
self.test_result.start_test(self.test1)
self.test_result.check_test(self.test1.get_state())
# Only status - valid statuses
run_fake_status({"status": "PASS"})
run_fake_status({"status": "SKIP"})
run_fake_status({"status": "FAIL"})
run_fake_status({"status": "ERROR"})
run_fake_status({"status": "WARN"})
run_fake_status({"status": "INTERRUPTED"})
# Only status - invalid statuses
run_fake_status({"status": "INVALID"})
run_fake_status({"status": None})
run_fake_status({"status": ""})
# Postprocess
self.test_result.end_tests()
res = json.loads(self.test_result.json)
check_item("[pass]", res["pass"], 2)
check_item("[errors]", res["errors"], 4)
check_item("[failures]", res["failures"], 1)
check_item("[skip]", res["skip"], 4)
check_item("[total]", res["total"], 13)
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册