mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
bpo-2604: Make doctest.DocTestCase reset globs in teardown (GH-31932)
Co-authored-by: Piet Delport
Co-authored-by: Hugo Lopes Tavares
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
(cherry picked from commit 7ba7eae508
)
Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com>
This commit is contained in:
parent
af341ebf00
commit
3c6019035f
3 changed files with 20 additions and 0 deletions
|
@ -2159,6 +2159,7 @@ class DocTestCase(unittest.TestCase):
|
|||
unittest.TestCase.__init__(self)
|
||||
self._dt_optionflags = optionflags
|
||||
self._dt_checker = checker
|
||||
self._dt_globs = test.globs.copy()
|
||||
self._dt_test = test
|
||||
self._dt_setUp = setUp
|
||||
self._dt_tearDown = tearDown
|
||||
|
@ -2175,7 +2176,9 @@ class DocTestCase(unittest.TestCase):
|
|||
if self._dt_tearDown is not None:
|
||||
self._dt_tearDown(test)
|
||||
|
||||
# restore the original globs
|
||||
test.globs.clear()
|
||||
test.globs.update(self._dt_globs)
|
||||
|
||||
def runTest(self):
|
||||
test = self._dt_test
|
||||
|
|
|
@ -3107,6 +3107,22 @@ def test_no_trailing_whitespace_stripping():
|
|||
"""
|
||||
|
||||
|
||||
def test_run_doctestsuite_multiple_times():
|
||||
"""
|
||||
It was not possible to run the same DocTestSuite multiple times
|
||||
http://bugs.python.org/issue2604
|
||||
http://bugs.python.org/issue9736
|
||||
|
||||
>>> import unittest
|
||||
>>> import test.sample_doctest
|
||||
>>> suite = doctest.DocTestSuite(test.sample_doctest)
|
||||
>>> suite.run(unittest.TestResult())
|
||||
<unittest.result.TestResult run=9 errors=0 failures=4>
|
||||
>>> suite.run(unittest.TestResult())
|
||||
<unittest.result.TestResult run=9 errors=0 failures=4>
|
||||
"""
|
||||
|
||||
|
||||
def load_tests(loader, tests, pattern):
|
||||
tests.addTest(doctest.DocTestSuite(doctest))
|
||||
tests.addTest(doctest.DocTestSuite())
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fix bug where doctests using globals would fail when run multiple times.
|
Loading…
Add table
Add a link
Reference in a new issue