mirror of https://github.com/python/cpython
GH-71383: IDLE - Document testing subsets of modules (#104463)
This commit is contained in:
parent
7d2deafb73
commit
080a596152
|
@ -146,14 +146,17 @@ python -m unittest -v idlelib.idle_test
|
|||
python -m test -v -ugui test_idle
|
||||
python -m test.test_idle
|
||||
|
||||
The idle tests are 'discovered' by
|
||||
idlelib.idle_test.__init__.load_tests, which is also imported into
|
||||
test.test_idle. Normally, neither file should be changed when working on
|
||||
individual test modules. The third command runs unittest indirectly
|
||||
through regrtest. The same happens when the entire test suite is run
|
||||
with 'python -m test'. So that command must work for buildbots to stay
|
||||
green. Idle tests must not disturb the environment in a way that makes
|
||||
other tests fail (issue 18081).
|
||||
IDLE tests are 'discovered' by idlelib.idle_test.__init__.load_tests
|
||||
when this is imported into test.test_idle. Normally, neither file
|
||||
should be changed when working on individual test modules. The third
|
||||
command runs unittest indirectly through regrtest. The same happens when
|
||||
the entire test suite is run with 'python -m test'. So that command must
|
||||
work for buildbots to stay green. IDLE tests must not disturb the
|
||||
environment in a way that makes other tests fail (GH-62281).
|
||||
|
||||
To test subsets of modules, see idlelib.idle_test.__init__. This
|
||||
can be used to find refleaks or possible sources of "Theme changed"
|
||||
tcl messages (GH-71383).
|
||||
|
||||
To run an individual Testcase or test method, extend the dotted name
|
||||
given to unittest on the command line or use the test -m option. The
|
||||
|
|
|
@ -1,17 +1,27 @@
|
|||
'''idlelib.idle_test is a private implementation of test.test_idle,
|
||||
which tests the IDLE application as part of the stdlib test suite.
|
||||
Run IDLE tests alone with "python -m test.test_idle".
|
||||
Starting with Python 3.6, IDLE requires tcl/tk 8.5 or later.
|
||||
"""idlelib.idle_test implements test.test_idle, which tests the IDLE
|
||||
application as part of the stdlib test suite.
|
||||
Run IDLE tests alone with "python -m test.test_idle (-v)".
|
||||
|
||||
This package and its contained modules are subject to change and
|
||||
any direct use is at your own risk.
|
||||
'''
|
||||
"""
|
||||
from os.path import dirname
|
||||
|
||||
# test_idle imports load_tests for test discovery (default all).
|
||||
# To run subsets of idlelib module tests, insert '[<chars>]' after '_'.
|
||||
# Example: insert '[ac]' for modules beginning with 'a' or 'c'.
|
||||
# Additional .discover/.addTest pairs with separate inserts work.
|
||||
# Example: pairs with 'c' and 'g' test c* files and grep.
|
||||
|
||||
def load_tests(loader, standard_tests, pattern):
|
||||
this_dir = dirname(__file__)
|
||||
top_dir = dirname(dirname(this_dir))
|
||||
package_tests = loader.discover(start_dir=this_dir, pattern='test*.py',
|
||||
module_tests = loader.discover(start_dir=this_dir,
|
||||
pattern='test_*.py', # Insert here.
|
||||
top_level_dir=top_dir)
|
||||
standard_tests.addTests(package_tests)
|
||||
standard_tests.addTests(module_tests)
|
||||
## module_tests = loader.discover(start_dir=this_dir,
|
||||
## pattern='test_*.py', # Insert here.
|
||||
## top_level_dir=top_dir)
|
||||
## standard_tests.addTests(module_tests)
|
||||
return standard_tests
|
||||
|
|
|
@ -5,12 +5,8 @@ from test.support import check_sanitizer
|
|||
if check_sanitizer(address=True, memory=True):
|
||||
raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds")
|
||||
|
||||
# Skip test_idle if _tkinter wasn't built, if tkinter is missing,
|
||||
# if tcl/tk is not the 8.5+ needed for ttk widgets,
|
||||
# or if idlelib is missing (not installed).
|
||||
# Skip test_idle if _tkinter, tkinter, or idlelib are missing.
|
||||
tk = import_module('tkinter') # Also imports _tkinter.
|
||||
if tk.TkVersion < 8.5:
|
||||
raise unittest.SkipTest("IDLE requires tk 8.5 or later.")
|
||||
idlelib = import_module('idlelib')
|
||||
|
||||
# Before importing and executing more of idlelib,
|
||||
|
|
Loading…
Reference in New Issue