mirror of
https://github.com/python/cpython.git
synced 2025-10-06 15:11:58 +00:00
GH-71383: IDLE - Document testing subsets of modules (#104463)
This commit is contained in:
parent
7d2deafb73
commit
080a596152
3 changed files with 29 additions and 20 deletions
|
@ -146,14 +146,17 @@ python -m unittest -v idlelib.idle_test
|
||||||
python -m test -v -ugui test_idle
|
python -m test -v -ugui test_idle
|
||||||
python -m test.test_idle
|
python -m test.test_idle
|
||||||
|
|
||||||
The idle tests are 'discovered' by
|
IDLE tests are 'discovered' by idlelib.idle_test.__init__.load_tests
|
||||||
idlelib.idle_test.__init__.load_tests, which is also imported into
|
when this is imported into test.test_idle. Normally, neither file
|
||||||
test.test_idle. Normally, neither file should be changed when working on
|
should be changed when working on individual test modules. The third
|
||||||
individual test modules. The third command runs unittest indirectly
|
command runs unittest indirectly through regrtest. The same happens when
|
||||||
through regrtest. The same happens when the entire test suite is run
|
the entire test suite is run with 'python -m test'. So that command must
|
||||||
with 'python -m test'. So that command must work for buildbots to stay
|
work for buildbots to stay green. IDLE tests must not disturb the
|
||||||
green. Idle tests must not disturb the environment in a way that makes
|
environment in a way that makes other tests fail (GH-62281).
|
||||||
other tests fail (issue 18081).
|
|
||||||
|
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
|
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
|
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,
|
"""idlelib.idle_test implements test.test_idle, which tests the IDLE
|
||||||
which tests the IDLE application as part of the stdlib test suite.
|
application as part of the stdlib test suite.
|
||||||
Run IDLE tests alone with "python -m test.test_idle".
|
Run IDLE tests alone with "python -m test.test_idle (-v)".
|
||||||
Starting with Python 3.6, IDLE requires tcl/tk 8.5 or later.
|
|
||||||
|
|
||||||
This package and its contained modules are subject to change and
|
This package and its contained modules are subject to change and
|
||||||
any direct use is at your own risk.
|
any direct use is at your own risk.
|
||||||
'''
|
"""
|
||||||
from os.path import dirname
|
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):
|
def load_tests(loader, standard_tests, pattern):
|
||||||
this_dir = dirname(__file__)
|
this_dir = dirname(__file__)
|
||||||
top_dir = dirname(dirname(this_dir))
|
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)
|
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
|
return standard_tests
|
||||||
|
|
|
@ -5,12 +5,8 @@ from test.support import check_sanitizer
|
||||||
if check_sanitizer(address=True, memory=True):
|
if check_sanitizer(address=True, memory=True):
|
||||||
raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds")
|
raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds")
|
||||||
|
|
||||||
# Skip test_idle if _tkinter wasn't built, if tkinter is missing,
|
# Skip test_idle if _tkinter, tkinter, or idlelib are missing.
|
||||||
# if tcl/tk is not the 8.5+ needed for ttk widgets,
|
|
||||||
# or if idlelib is missing (not installed).
|
|
||||||
tk = import_module('tkinter') # Also imports _tkinter.
|
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')
|
idlelib = import_module('idlelib')
|
||||||
|
|
||||||
# Before importing and executing more of idlelib,
|
# Before importing and executing more of idlelib,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue