mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
Bug 1552855 - [mozlog] Add new optional field to test actions for expected intermittents. r=jgraham
Added a new optional field on the test_end and test_status actions called expected_intermittents which accepts a List of expected intermittent statuses. The default is None. As it is an optional field, upon landing of D25081, it will only show if there is an expected intermittent. A test was added to check that expected_intermittents are logged. Differential Revision: https://phabricator.services.mozilla.com/D31809 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
846e7d0d9b
commit
1a21f1c47b
@ -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
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user