aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorboon <ohbooneng@google.com>2024-01-07 20:25:14 +0800
committerGitHub <noreply@github.com>2024-01-07 04:25:14 -0800
commit707eff2238c2f475bb1ac161f861065a1fc2a360 (patch)
tree442a0dc32fbbfccb5f6e4176240ced16b24340e6
parent46ff13e8bfaac24b6ba3ea43b2da9b5a1b0dec68 (diff)
downloadmobly-707eff2238c2f475bb1ac161f861065a1fc2a360.tar.gz
Count should only count retries and not repeats. (#906)
-rw-r--r--mobly/records.py2
-rwxr-xr-xtests/mobly/records_test.py30
2 files changed, 31 insertions, 1 deletions
diff --git a/mobly/records.py b/mobly/records.py
index 216f3f7..10d3063 100644
--- a/mobly/records.py
+++ b/mobly/records.py
@@ -662,7 +662,7 @@ class TestResult:
count = 0
for record in self.passed:
r = record
- while r.parent is not None:
+ while r.parent is not None and r.parent[1] == TestParentType.RETRY:
count += 1
r = r.parent[0]
return count
diff --git a/tests/mobly/records_test.py b/tests/mobly/records_test.py
index f3140a9..5c1d027 100755
--- a/tests/mobly/records_test.py
+++ b/tests/mobly/records_test.py
@@ -380,6 +380,36 @@ class RecordsTest(unittest.TestCase):
utils.validate_test_result(tr)
self.assertFalse(tr.is_all_pass)
+ def test_is_all_pass_with_retry(self):
+ s = signals.TestFailure(self.details, self.float_extra)
+ record1 = records.TestResultRecord(self.tn)
+ record1.test_begin()
+ record1.test_fail(s)
+ record2 = records.TestResultRecord(self.tn)
+ record2.test_begin()
+ record2.test_pass()
+ record2.parent = (record1, records.TestParentType.RETRY)
+ tr = records.TestResult()
+ tr.add_record(record1)
+ tr.add_record(record2)
+ utils.validate_test_result(tr)
+ self.assertTrue(tr.is_all_pass)
+
+ def test_is_all_pass_with_repeat(self):
+ s = signals.TestFailure(self.details, self.float_extra)
+ record1 = records.TestResultRecord(self.tn)
+ record1.test_begin()
+ record1.test_fail(s)
+ record2 = records.TestResultRecord(self.tn)
+ record2.test_begin()
+ record2.test_pass()
+ record2.parent = (record1, records.TestParentType.REPEAT)
+ tr = records.TestResult()
+ tr.add_record(record1)
+ tr.add_record(record2)
+ utils.validate_test_result(tr)
+ self.assertFalse(tr.is_all_pass)
+
def test_is_all_pass_with_add_class_error(self):
"""Verifies that is_all_pass yields correct value when add_class_error is
used.