diff --git a/testing/mozbase/mozlog/mozlog/structuredlog.py b/testing/mozbase/mozlog/mozlog/structuredlog.py index ef5ca600b96e..ad1f5763b803 100644 --- a/testing/mozbase/mozlog/mozlog/structuredlog.py +++ b/testing/mozbase/mozlog/mozlog/structuredlog.py @@ -354,7 +354,9 @@ class StructuredLogger(object): SubStatus("expected", default="PASS"), Unicode("message", default=None, optional=True), Unicode("stack", default=None, optional=True), - Dict(Any, "extra", default=None, optional=True)) + Dict(Any, "extra", default=None, optional=True), + List(SubStatus, "expected_intermittent", default=None, + optional=True)) def test_status(self, data): """ Log a test_status message indicating a subtest result. Tests that @@ -385,7 +387,9 @@ class StructuredLogger(object): Status("expected", default="OK"), Unicode("message", default=None, optional=True), Unicode("stack", default=None, optional=True), - Dict(Any, "extra", default=None, optional=True)) + Dict(Any, "extra", default=None, optional=True), + List(Status, "expected_intermittent", default=None, + optional=True)) def test_end(self, data): """ Log a test_end message indicating that a test completed. For tests diff --git a/testing/mozbase/mozlog/tests/test_structured.py b/testing/mozbase/mozlog/tests/test_structured.py index de7d6270f494..ec559f0ec863 100644 --- a/testing/mozbase/mozlog/tests/test_structured.py +++ b/testing/mozbase/mozlog/tests/test_structured.py @@ -239,6 +239,19 @@ class TestStructuredLog(BaseStructuredTest): self.logger.test_end("test1", "OK") self.logger.suite_end() + def test_status_expected_intermittent(self): + self.logger.suite_start([]) + self.logger.test_start("test1") + self.logger.test_status("test1", "subtest name", "fail", expected_intermittent=["FAIL"]) + self.assert_log_equals({"action": "test_status", + "subtest": "subtest name", + "status": "FAIL", + "expected": "PASS", + "expected_intermittent": ["FAIL"], + "test": "test1"}) + self.logger.test_end("test1", "OK") + self.logger.suite_end() + def test_status_not_started(self): self.logger.test_status("test_UNKNOWN", "subtest", "PASS") self.assertTrue(self.pop_last_item()["message"].startswith( @@ -561,7 +574,7 @@ class TestTypeConversions(BaseStructuredTest): self.assertRaises(TypeError, self.logger.test_status, subtest="subtest2", status="FAIL", expected="PASS") self.assertRaises(TypeError, self.logger.test_status, "test1", "subtest1", - "PASS", "FAIL", "message", "stack", {}, "unexpected") + "PASS", "FAIL", "message", "stack", {}, [], "unexpected") self.assertRaises(TypeError, self.logger.test_status, "test1", test="test2") self.logger.suite_end()