mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Merge #14649: clarify DocTestSuite error when there are no docstrings.
Also adds tests to verify the documented behavior (which is probably a bug, as indicated in the added comments). Patch by Chris Jerdonek.
This commit is contained in:
commit
c3bfb01a95
6 changed files with 84 additions and 6 deletions
|
@ -29,7 +29,8 @@ verbose = test.support.verbose
|
|||
# test_cmd_line_script (covers the zipimport support in runpy)
|
||||
|
||||
# Retrieve some helpers from other test cases
|
||||
from test import test_doctest, sample_doctest
|
||||
from test import (test_doctest, sample_doctest, sample_doctest_no_doctests,
|
||||
sample_doctest_no_docstrings)
|
||||
|
||||
|
||||
def _run_object_doctest(obj, module):
|
||||
|
@ -105,16 +106,26 @@ class ZipSupportTests(unittest.TestCase):
|
|||
"test_zipped_doctest")
|
||||
test_src = test_src.replace("test.sample_doctest",
|
||||
"sample_zipped_doctest")
|
||||
sample_src = inspect.getsource(sample_doctest)
|
||||
sample_src = sample_src.replace("test.test_doctest",
|
||||
"test_zipped_doctest")
|
||||
# The sample doctest files rewritten to include in the zipped version.
|
||||
sample_sources = {}
|
||||
for mod in [sample_doctest, sample_doctest_no_doctests,
|
||||
sample_doctest_no_docstrings]:
|
||||
src = inspect.getsource(mod)
|
||||
src = src.replace("test.test_doctest", "test_zipped_doctest")
|
||||
# Rewrite the module name so that, for example,
|
||||
# "test.sample_doctest" becomes "sample_zipped_doctest".
|
||||
mod_name = mod.__name__.split(".")[-1]
|
||||
mod_name = mod_name.replace("sample_", "sample_zipped_")
|
||||
sample_sources[mod_name] = src
|
||||
|
||||
with temp_dir() as d:
|
||||
script_name = make_script(d, 'test_zipped_doctest',
|
||||
test_src)
|
||||
zip_name, run_name = make_zip_script(d, 'test_zip',
|
||||
script_name)
|
||||
z = zipfile.ZipFile(zip_name, 'a')
|
||||
z.writestr("sample_zipped_doctest.py", sample_src)
|
||||
for mod_name, src in sample_sources.items():
|
||||
z.writestr(mod_name + ".py", src)
|
||||
z.close()
|
||||
if verbose:
|
||||
zip_file = zipfile.ZipFile(zip_name, 'r')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue