Skip to content

Commit

Permalink
#22 Create TestSuite from TestCase
Browse files Browse the repository at this point in the history
  • Loading branch information
kaiosilveira committed Mar 19, 2023
2 parents 6cbb911 + dd548a9 commit 3510abb
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 8 deletions.
9 changes: 9 additions & 0 deletions src/no_op_test_case.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from test_case import TestCase


class NoOpTestCase(TestCase):
def testMethod(self) -> None:
pass

def testMethod2(self) -> None:
pass
15 changes: 15 additions & 0 deletions src/test_case.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
from test_suite import TestSuite


class TestCase:

def __init__(self, name) -> None:
Expand Down Expand Up @@ -28,3 +31,15 @@ def run(self, result) -> None:

def tearDown(self) -> None:
pass

def getTestNames(self):
testNames = [testName for testName in dir(
self) if testName.startswith("test")]
return testNames

def asSuite(self):
suite = TestSuite()
testNames = self.getTestNames()
for testName in testNames:
suite.add(self.__class__(testName))
return suite
21 changes: 13 additions & 8 deletions src/test_case_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from broken_setup import TestCaseWithBrokenSetup
from test_suite import TestSuite
from broken_teardown import TestCaseWithBrokenTearDown
from no_op_test_case import NoOpTestCase


class TestCaseTest(TestCase):
Expand Down Expand Up @@ -48,16 +49,20 @@ def testTearDownCalledEvenIfTestFails(self) -> None:
test.run(self.result)
assert ("setUp testBrokenMethod tearDown " == test.log)

def testCollectAllTestNames(self) -> None:
test = NoOpTestCase('testMethod')
assert (test.getTestNames() == ["testMethod", "testMethod2"])

suite = TestSuite()
suite.add(TestCaseTest("testTemplateMethod"))
suite.add(TestCaseTest("testFailedResultFormatting"))
suite.add(TestCaseTest("testFailedResult"))
suite.add(TestCaseTest("testFailedSetUp"))
suite.add(TestCaseTest("testSuite"))
suite.add(TestCaseTest("testFailedTearDown"))
suite.add(TestCaseTest("testTearDownCalledEvenIfTestFails"))
def testReturnsTestSuite(self) -> None:
suite = NoOpTestCase('testMethod').asSuite()
assert (len(suite.tests) == 2)

result = TestResult()
suite.run(result)
assert (result.summary() == "2 run, 0 failed")


suite = TestCaseTest('anything').asSuite()
result = TestResult()
suite.run(result)
print(result.summary())

0 comments on commit 3510abb

Please sign in to comment.