sync to Atlas repo
This commit is contained in:
@@ -1,33 +1,36 @@
|
||||
import sys
|
||||
import importlib
|
||||
# BEGIN TOMBOLA_RUNNER
|
||||
import doctest
|
||||
|
||||
from tombola import Tombola
|
||||
|
||||
# modules to test
|
||||
import bingo, lotto, tombolist, drum # <1>
|
||||
|
||||
TEST_FILE = 'tombola_tests.rst'
|
||||
MODULE_NAMES = 'bingo lotto tombolist drum'.split()
|
||||
TEST_MSG = '{0:16} {1.attempted:2} tests, {1.failed:2} failed - {2}'
|
||||
|
||||
|
||||
def main(argv):
|
||||
verbose = '-v' in argv
|
||||
real_subclasses = Tombola.__subclasses__() # <2>
|
||||
virtual_subclasses = list(Tombola._abc_registry) # <3>
|
||||
|
||||
for cls in real_subclasses + virtual_subclasses: # <4>
|
||||
test(cls, verbose)
|
||||
|
||||
|
||||
def test(cls, verbose=False):
|
||||
|
||||
res = doctest.testfile(TEST_FILE,
|
||||
globs={'TombolaUnderTest': cls},
|
||||
verbose=verbose,
|
||||
optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)
|
||||
res = doctest.testfile(
|
||||
TEST_FILE,
|
||||
globs={'ConcreteTombola': cls}, # <5>
|
||||
verbose=verbose,
|
||||
optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)
|
||||
tag = 'FAIL' if res.failed else 'OK'
|
||||
print(TEST_MSG.format(cls.__name__, res, tag))
|
||||
print(TEST_MSG.format(cls.__name__, res, tag)) # <6>
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
for name in MODULE_NAMES: # import modules to test, by name
|
||||
importlib.import_module(name)
|
||||
|
||||
verbose = '-v' in sys.argv
|
||||
|
||||
real_subclasses = Tombola.__subclasses__()
|
||||
virtual_subclasses = list(Tombola._abc_registry)
|
||||
|
||||
for cls in real_subclasses + virtual_subclasses:
|
||||
test(cls, verbose)
|
||||
import sys
|
||||
main(sys.argv)
|
||||
# END TOMBOLA_RUNNER
|
||||
|
||||
Reference in New Issue
Block a user