From 076a4fc9b44bd5369091efffbff0835ee2b2e57d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Doktor?= Date: Fri, 22 Apr 2016 07:06:55 +0200 Subject: [PATCH] selftests.unit: Add jsonresult tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: Lukáš Doktor --- selftests/unit/test_jsonresult.py | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/selftests/unit/test_jsonresult.py b/selftests/unit/test_jsonresult.py index b22481a0..07aab48c 100644 --- a/selftests/unit/test_jsonresult.py +++ b/selftests/unit/test_jsonresult.py @@ -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() -- GitLab