aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorboon <ohbooneng@google.com>2023-12-29 09:15:34 +0800
committerGitHub <noreply@github.com>2023-12-28 17:15:34 -0800
commit46ff13e8bfaac24b6ba3ea43b2da9b5a1b0dec68 (patch)
treeaf8400a5c85037110faa2899aeec09fb3e0dae08 /tests
parent6c5d666c44d350a2f906351c645d4f8313463a43 (diff)
downloadmobly-46ff13e8bfaac24b6ba3ea43b2da9b5a1b0dec68.tar.gz
Add parent field to records to represent repeat and retry information. (#905)
This provides a generic way to mark the sequential relationship of test result records. The intention is to make it easier for downstream parsers to process test result records for repeat and retry cases. The `retry_parent` field is now deprecated in test result record.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/mobly/base_test_test.py26
-rwxr-xr-xtests/mobly/records_test.py1
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/mobly/base_test_test.py b/tests/mobly/base_test_test.py
index 630bd82..bfc7b75 100755
--- a/tests/mobly/base_test_test.py
+++ b/tests/mobly/base_test_test.py
@@ -2615,7 +2615,13 @@ class BaseTestTest(unittest.TestCase):
self.assertEqual(error_record_1.test_name, 'test_something')
self.assertEqual(error_record_2.test_name, 'test_something_retry_1')
self.assertIs(error_record_1, error_record_2.retry_parent)
+ self.assertEqual(
+ (error_record_1, records.TestParentType.RETRY), error_record_2.parent
+ )
self.assertIs(error_record_2, pass_record.retry_parent)
+ self.assertEqual(
+ (error_record_2, records.TestParentType.RETRY), pass_record.parent
+ )
def test_retry_generated_test_last_pass(self):
max_count = 3
@@ -2650,7 +2656,13 @@ class BaseTestTest(unittest.TestCase):
self.assertEqual(error_record_1.test_name, 'test_generated_1')
self.assertEqual(error_record_2.test_name, 'test_generated_1_retry_1')
self.assertIs(error_record_1, error_record_2.retry_parent)
+ self.assertEqual(
+ (error_record_1, records.TestParentType.RETRY), error_record_2.parent
+ )
self.assertIs(error_record_2, pass_record.retry_parent)
+ self.assertEqual(
+ (error_record_2, records.TestParentType.RETRY), pass_record.parent
+ )
def test_retry_all_fail(self):
max_count = 3
@@ -2679,7 +2691,13 @@ class BaseTestTest(unittest.TestCase):
self.assertEqual(error_record_2.test_name, 'test_something_retry_1')
self.assertEqual(error_record_3.test_name, 'test_something_retry_2')
self.assertIs(error_record_1, error_record_2.retry_parent)
+ self.assertEqual(
+ (error_record_1, records.TestParentType.RETRY), error_record_2.parent
+ )
self.assertIs(error_record_2, error_record_3.retry_parent)
+ self.assertEqual(
+ (error_record_2, records.TestParentType.RETRY), error_record_3.parent
+ )
def test_uid(self):
class MockBaseTest(base_test.BaseTestClass):
@@ -2726,9 +2744,17 @@ class BaseTestTest(unittest.TestCase):
bt_cls = MockBaseTest(self.mock_test_cls_configs)
bt_cls.run()
self.assertEqual(repeat_count, len(bt_cls.results.passed))
+ previous_record = None
for i, record in enumerate(bt_cls.results.passed):
self.assertEqual(record.test_name, f'test_something_{i}')
self.assertEqual(record.uid, 'some-uid')
+ if i == 0:
+ self.assertIsNone(record.parent)
+ else:
+ self.assertEqual(
+ record.parent, (previous_record, records.TestParentType.REPEAT)
+ )
+ previous_record = record
def test_uid_with_repeat(self):
repeat_count = 3
diff --git a/tests/mobly/records_test.py b/tests/mobly/records_test.py
index bcee67a..f3140a9 100755
--- a/tests/mobly/records_test.py
+++ b/tests/mobly/records_test.py
@@ -98,6 +98,7 @@ class RecordsTest(unittest.TestCase):
)
d[records.TestResultEnums.RECORD_UID] = None
d[records.TestResultEnums.RECORD_RETRY_PARENT] = None
+ d[records.TestResultEnums.RECORD_PARENT] = None
d[records.TestResultEnums.RECORD_CLASS] = None
d[records.TestResultEnums.RECORD_EXTRA_ERRORS] = {}
d[records.TestResultEnums.RECORD_STACKTRACE] = stacktrace