summaryrefslogtreecommitdiffstats
path: root/Lib/doctest.py
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-02-23 00:24:49 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-02-23 00:24:49 (GMT)
commitf28fd24c36310541a1f3ec74e92e8d38629dd5d8 (patch)
treeca85998492ba91f8874ba63fecd77397f65ad3d6 /Lib/doctest.py
parent87bcb243acfd758b3e91e194bf8f1198ae68a792 (diff)
downloadcpython-f28fd24c36310541a1f3ec74e92e8d38629dd5d8.zip
cpython-f28fd24c36310541a1f3ec74e92e8d38629dd5d8.tar.gz
cpython-f28fd24c36310541a1f3ec74e92e8d38629dd5d8.tar.bz2
Issue 6292: for the moment at least, the test suite passes if run
with -OO. Tests requiring docstrings are skipped. Patch by Brian Curtin, thanks to Matias Torchinsky for helping review and improve the patch.
Diffstat (limited to 'Lib/doctest.py')
-rw-r--r--Lib/doctest.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py
index b07ef6e..41eccbe 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -2240,6 +2240,19 @@ class DocTestCase(unittest.TestCase):
def shortDescription(self):
return "Doctest: " + self._dt_test.name
+class SkipDocTestCase(DocTestCase):
+ def __init__(self):
+ DocTestCase.__init__(self, None)
+
+ def setUp(self):
+ self.skipTest("DocTestSuite will not work with -O2 and above")
+
+ def test_skip(self):
+ pass
+
+ def shortDescription(self):
+ return "Skipping tests from %s" % module.__name__
+
def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
**options):
"""
@@ -2282,13 +2295,20 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
module = _normalize_module(module)
tests = test_finder.find(module, globs=globs, extraglobs=extraglobs)
- if not tests:
+
+ if not tests and sys.flags.optimize >=2:
+ # Skip doctests when running with -O2
+ suite = unittest.TestSuite()
+ suite.addTest(SkipDocTestCase())
+ return suite
+ elif not tests:
# Why do we want to do this? Because it reveals a bug that might
# otherwise be hidden.
raise ValueError(module, "has no tests")
tests.sort()
suite = unittest.TestSuite()
+
for test in tests:
if len(test.examples) == 0:
continue