diff --git a/src/test_case.py b/src/test_case.py index eda6cd7..a7552eb 100644 --- a/src/test_case.py +++ b/src/test_case.py @@ -9,8 +9,7 @@ def __init__(self, name) -> None: def setUp(self) -> None: pass - def run(self) -> None: - result = TestResult() + def run(self, result) -> None: result.testStarted() try: @@ -26,7 +25,6 @@ def run(self) -> None: result.testFailed() self.tearDown() - return result def tearDown(self) -> None: pass diff --git a/src/test_case_test.py b/src/test_case_test.py index 68df15b..3b99f40 100644 --- a/src/test_case_test.py +++ b/src/test_case_test.py @@ -2,18 +2,22 @@ from was_run import WasRun from test_result import TestResult from broken_setup import TestCaseWithBrokenSetup +from test_suite import TestSuite class TestCaseTest(TestCase): + def setUp(self) -> None: + self.result = TestResult() + def testTemplateMethod(self) -> None: test = WasRun("testMethod") - result = test.run() - assert ("1 run, 0 failed" == result.summary()) + test.run(self.result) + assert ("1 run, 0 failed" == self.result.summary()) def testFailedResult(self) -> None: test = WasRun("testBrokenMethod") - result = test.run() - assert ("1 run, 1 failed" == result.summary()) + test.run(self.result) + assert ("1 run, 1 failed" == self.result.summary()) def testFailedResultFormatting(self) -> None: result = TestResult() @@ -23,11 +27,24 @@ def testFailedResultFormatting(self) -> None: def testFailedSetUp(self) -> None: test = TestCaseWithBrokenSetup("testMethod") - result = test.run() - assert ("1 run, 1 failed" == result.summary()) + test.run(self.result) + assert ("1 run, 1 failed" == self.result.summary()) + + def testSuite(self) -> None: + suite = TestSuite() + suite.add(WasRun("testMethod")) + suite.add(WasRun("testBrokenMethod")) + suite.run(self.result) + assert ("2 run, 1 failed" == self.result.summary()) + +suite = TestSuite() +suite.add(TestCaseTest("testTemplateMethod")) +suite.add(TestCaseTest("testFailedResultFormatting")) +suite.add(TestCaseTest("testFailedResult")) +suite.add(TestCaseTest("testFailedSetUp")) +suite.add(TestCaseTest("testSuite")) -print(TestCaseTest("testTemplateMethod").run().summary()) -print(TestCaseTest("testFailedResultFormatting").run().summary()) -print(TestCaseTest("testFailedResult").run().summary()) -print(TestCaseTest("testFailedSetUp").run().summary()) +result = TestResult() +suite.run(result) +print(result.summary()) diff --git a/src/test_suite.py b/src/test_suite.py new file mode 100644 index 0000000..c5a6c76 --- /dev/null +++ b/src/test_suite.py @@ -0,0 +1,13 @@ +from test_result import TestResult + + +class TestSuite: + def __init__(self) -> None: + self.tests = [] + + def add(self, test) -> None: + self.tests.append(test) + + def run(self, result) -> None: + for test in self.tests: + test.run(result)