mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Issue #22002: Make full use of test discovery in test sub-packages.
Adds `load_package_tests` function to test.support, uses it in test_asyncio, test_email, test_json, test_tools, test_importlib and all test_importlib sub-packages to implement test discovery.
This commit is contained in:
parent
c4c464911a
commit
f012ba42fe
21 changed files with 104 additions and 169 deletions
|
@ -85,7 +85,7 @@ __all__ = [
|
|||
"skip_unless_symlink", "requires_gzip", "requires_bz2", "requires_lzma",
|
||||
"bigmemtest", "bigaddrspacetest", "cpython_only", "get_attribute",
|
||||
"requires_IEEE_754", "skip_unless_xattr", "requires_zlib",
|
||||
"anticipate_failure",
|
||||
"anticipate_failure", "load_package_tests",
|
||||
# sys
|
||||
"is_jython", "check_impl_detail",
|
||||
# network
|
||||
|
@ -188,6 +188,25 @@ def anticipate_failure(condition):
|
|||
return unittest.expectedFailure
|
||||
return lambda f: f
|
||||
|
||||
def load_package_tests(pkg_dir, loader, standard_tests, pattern):
|
||||
"""Generic load_tests implementation for simple test packages.
|
||||
|
||||
Most packages can implement load_tests using this function as follows:
|
||||
|
||||
def load_tests(*args):
|
||||
return load_package_tests(os.path.dirname(__file__), *args)
|
||||
"""
|
||||
if pattern is None:
|
||||
pattern = "test*"
|
||||
top_dir = os.path.dirname( # Lib
|
||||
os.path.dirname( # test
|
||||
os.path.dirname(__file__))) # support
|
||||
package_tests = loader.discover(start_dir=pkg_dir,
|
||||
top_level_dir=top_dir,
|
||||
pattern=pattern)
|
||||
standard_tests.addTests(package_tests)
|
||||
return standard_tests
|
||||
|
||||
|
||||
def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
|
||||
"""Import and return a module, deliberately bypassing sys.modules.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue