diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2021-10-20 14:36:27 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-20 14:36:27 (GMT) |
commit | 8d6740f489fca67a44de165d29d9e0ad86285779 (patch) | |
tree | 681ee6c48856f74e3fe666fe92afc79bfd0fcdb2 | |
parent | a774285e7d3e63c24dbaaee0b0d9e59ded5c49bf (diff) | |
download | cpython-8d6740f489fca67a44de165d29d9e0ad86285779.zip cpython-8d6740f489fca67a44de165d29d9e0ad86285779.tar.gz cpython-8d6740f489fca67a44de165d29d9e0ad86285779.tar.bz2 |
bpo-45229: Make doctest tests discoverable (GH-28986)
-rw-r--r-- | Lib/test/test_doctest.py | 20 | ||||
-rw-r--r-- | Lib/test/test_doctest2.py | 21 |
2 files changed, 18 insertions, 23 deletions
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index 571dc78..3524a0a 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -3114,20 +3114,11 @@ def test_no_trailing_whitespace_stripping(): patches that contain trailing whitespace. More info on Issue 24746. """ -###################################################################### -## Main -###################################################################### - -def test_main(): - # Check the doctest cases in doctest itself: - ret = support.run_doctest(doctest, verbosity=True) - # Check the doctest cases defined here: - from test import test_doctest - support.run_doctest(test_doctest, verbosity=True) - - # Run unittests - support.run_unittest(__name__) +def load_tests(loader, tests, pattern): + tests.addTest(doctest.DocTestSuite(doctest)) + tests.addTest(doctest.DocTestSuite()) + return tests def test_coverage(coverdir): @@ -3140,8 +3131,9 @@ def test_coverage(coverdir): r.write_results(show_missing=True, summary=True, coverdir=coverdir) + if __name__ == '__main__': if '-c' in sys.argv: test_coverage('/tmp/doctest.cover') else: - test_main() + unittest.main() diff --git a/Lib/test/test_doctest2.py b/Lib/test/test_doctest2.py index 347a143..ab8a069 100644 --- a/Lib/test/test_doctest2.py +++ b/Lib/test/test_doctest2.py @@ -13,7 +13,6 @@ the example. It should be ignored: import sys import unittest -from test import support if sys.flags.optimize >= 2: raise unittest.SkipTest("Cannot test docstrings with -O2") @@ -107,17 +106,21 @@ class C(object): """ return val -def test_main(): - from test import test_doctest2 - EXPECTED = 19 - f, t = support.run_doctest(test_doctest2) - if t != EXPECTED: - raise support.TestFailed("expected %d tests to run, not %d" % - (EXPECTED, t)) + +class Test(unittest.TestCase): + def test_testmod(self): + import doctest, sys + EXPECTED = 19 + f, t = doctest.testmod(sys.modules[__name__]) + if f: + self.fail("%d of %d doctests failed" % (f, t)) + if t != EXPECTED: + self.fail("expected %d tests to run, not %d" % (EXPECTED, t)) + # Pollute the namespace with a bunch of imported functions and classes, # to make sure they don't get tested. from doctest import * if __name__ == '__main__': - test_main() + unittest.main() |