diff --git a/cf/test/run_tests.py b/cf/test/run_tests.py index aa53a4c161..b8a32c8c22 100644 --- a/cf/test/run_tests.py +++ b/cf/test/run_tests.py @@ -2,6 +2,8 @@ import os from random import choice, shuffle import unittest +import doctest +import pkgutil import cf @@ -42,6 +44,13 @@ def randomise_test_order(*_args): shuffle(all_test_cases._tests) testsuite.addTests(all_test_cases) +# Add a test suite for doctests +# https://docs.python.org/3/library/doctest.html#unittest-api +testsuite_doctests = unittest.TestSuite() +for importer, name, ispkg in \ + pkgutil.walk_packages(cf.__path__, cf.__name__ + '.'): + testsuite_doctests.addTests(doctest.DocTestSuite(name)) + # Run the test suite's first set-up stage. def run_test_suite_setup_0(verbosity=2): runner = unittest.TextTestRunner(verbosity=verbosity) @@ -54,6 +63,12 @@ def run_test_suite_setup_1(verbosity=2): runner.run(testsuite_setup_1) +# Run the doctest test suite. +def run_test_suite_doctests(verbosity=2): + runner = unittest.TextTestRunner(verbosity=verbosity) + runner.run(testsuite_doctests) + + # Run the test suite. def run_test_suite(verbosity=2): runner = unittest.TextTestRunner(verbosity=verbosity) @@ -74,6 +89,7 @@ def run_test_suite(verbosity=2): run_test_suite_setup_0() run_test_suite_setup_1() + run_test_suite_doctests() run_test_suite() cf.CHUNKSIZE(original_chunksize)