kunit: tool: make TestCounts a dataclass
Since we're using Python 3.7+, we can use dataclasses to tersen the code. It also lets us create pre-populated TestCounts() objects and compare them in our unit test. (Before, you could only create empty ones). Signed-off-by: Daniel Latypov <dlatypov@google.com> Reviewed-by: David Gow <davidgow@google.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
f19dd011d8
commit
f473dd9488
|
@ -10,6 +10,7 @@
|
|||
# Author: Rae Moar <rmoar@google.com>
|
||||
|
||||
from __future__ import annotations
|
||||
from dataclasses import dataclass
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
@ -71,27 +72,17 @@ class TestStatus(Enum):
|
|||
NO_TESTS = auto()
|
||||
FAILURE_TO_PARSE_TESTS = auto()
|
||||
|
||||
@dataclass
|
||||
class TestCounts:
|
||||
"""
|
||||
Tracks the counts of statuses of all test cases and any errors within
|
||||
a Test.
|
||||
|
||||
Attributes:
|
||||
passed : int - the number of tests that have passed
|
||||
failed : int - the number of tests that have failed
|
||||
crashed : int - the number of tests that have crashed
|
||||
skipped : int - the number of tests that have skipped
|
||||
errors : int - the number of errors in the test and subtests
|
||||
"""
|
||||
def __init__(self):
|
||||
"""Creates TestCounts object with counts of all test
|
||||
statuses and test errors set to 0.
|
||||
"""
|
||||
self.passed = 0
|
||||
self.failed = 0
|
||||
self.crashed = 0
|
||||
self.skipped = 0
|
||||
self.errors = 0
|
||||
passed: int = 0
|
||||
failed: int = 0
|
||||
crashed: int = 0
|
||||
skipped: int = 0
|
||||
errors: int = 0
|
||||
|
||||
def __str__(self) -> str:
|
||||
"""Returns the string representation of a TestCounts object."""
|
||||
|
|
|
@ -182,9 +182,7 @@ class KUnitParserTest(unittest.TestCase):
|
|||
kunit_parser.extract_tap_lines(
|
||||
file.readlines()))
|
||||
# A missing test plan is not an error.
|
||||
self.assertEqual(0, result.counts.errors)
|
||||
# All tests should be accounted for.
|
||||
self.assertEqual(10, result.counts.total())
|
||||
self.assertEqual(result.counts, kunit_parser.TestCounts(passed=10, errors=0))
|
||||
self.assertEqual(
|
||||
kunit_parser.TestStatus.SUCCESS,
|
||||
result.status)
|
||||
|
|
Loading…
Reference in New Issue