-
-
Notifications
You must be signed in to change notification settings - Fork 32.1k
gh-77024: test.support: Improve documentation #92513
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
81c870d
41ed063
ccadae6
212e267
66199b4
36981dd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -325,11 +325,6 @@ The :mod:`test.support` module defines the following constants: | |
to make writes blocking. | ||
|
||
|
||
.. data:: TEST_SUPPORT_DIR | ||
|
||
Set to the top level directory that contains :mod:`test.support`. | ||
|
||
|
||
.. data:: TEST_HOME_DIR | ||
|
||
Set to the top level directory for the test package. | ||
|
@@ -359,13 +354,13 @@ The :mod:`test.support` module defines the following constants: | |
|
||
.. data:: MISSING_C_DOCSTRINGS | ||
|
||
Return ``True`` if running on CPython, not on Windows, and configuration | ||
Set to ``True`` if running on CPython, not on Windows, and configuration | ||
not set with ``WITH_DOC_STRINGS``. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. data:: HAVE_DOCSTRINGS | ||
|
||
Check for presence of docstrings. | ||
Set to ``True`` if docstrings are enabled. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. data:: TEST_HTTP_URL | ||
|
@@ -423,11 +418,6 @@ The :mod:`test.support` module defines the following functions: | |
Used when tests are executed by :mod:`test.regrtest`. | ||
|
||
|
||
.. function:: system_must_validate_cert(f) | ||
|
||
Raise :exc:`unittest.SkipTest` on TLS certification validation failures. | ||
|
||
|
||
.. function:: sortdict(dict) | ||
|
||
Return a repr of *dict* with keys sorted. | ||
|
@@ -445,12 +435,12 @@ The :mod:`test.support` module defines the following functions: | |
|
||
.. function:: match_test(test) | ||
|
||
Match *test* to patterns set in :func:`set_match_tests`. | ||
Return whether *test* matches the patterns set in :func:`set_match_tests`. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. function:: set_match_tests(patterns) | ||
.. function:: set_match_tests(accept_patterns=None, ignore_patterns=None) | ||
|
||
Define match test with regular expression *patterns*. | ||
Define match patterns for filtering tests. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. function:: run_unittest(*classes) | ||
|
@@ -490,7 +480,9 @@ The :mod:`test.support` module defines the following functions: | |
.. function:: check_impl_detail(**guards) | ||
|
||
Use this check to guard CPython's implementation-specific tests or to | ||
run them only on the implementations guarded by the arguments:: | ||
run them only on the implementations guarded by the arguments. This | ||
function returns ``True`` or ``False`` depending on the host platform. | ||
Example usage:: | ||
|
||
check_impl_detail() # Only on CPython (default). | ||
check_impl_detail(jython=True) # Only on Jython. | ||
|
@@ -509,7 +501,7 @@ The :mod:`test.support` module defines the following functions: | |
time the regrtest began. | ||
|
||
|
||
.. function:: get_original_stdout | ||
.. function:: get_original_stdout() | ||
|
||
Return the original stdout set by :func:`record_original_stdout` or | ||
``sys.stdout`` if it's not set. | ||
|
@@ -554,7 +546,7 @@ The :mod:`test.support` module defines the following functions: | |
|
||
.. function:: disable_faulthandler() | ||
|
||
A context manager that replaces ``sys.stderr`` with ``sys.__stderr__``. | ||
A context manager that temporary disables :mod:`faulthandler`. | ||
|
||
|
||
.. function:: gc_collect() | ||
|
@@ -568,7 +560,7 @@ The :mod:`test.support` module defines the following functions: | |
.. function:: disable_gc() | ||
|
||
A context manager that disables the garbage collector upon entry and | ||
reenables it upon exit. | ||
reenables it upon exit, if it was initially enabled. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. function:: swap_attr(obj, attr, new_val) | ||
|
@@ -642,14 +634,14 @@ The :mod:`test.support` module defines the following functions: | |
|
||
.. function:: calcobjsize(fmt) | ||
|
||
Return :func:`struct.calcsize` for ``nP{fmt}0n`` or, if ``gettotalrefcount`` | ||
exists, ``2PnP{fmt}0P``. | ||
Return the size of the :c:type:`PyObject` whose structure is | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
defined by *fmt* including the Python object header and alignment. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. function:: calcvobjsize(fmt) | ||
|
||
Return :func:`struct.calcsize` for ``nPn{fmt}0n`` or, if ``gettotalrefcount`` | ||
exists, ``2PnPn{fmt}0P``. | ||
Return the size of the :c:type:`PyVarObject` whose structure is | ||
defined by *fmt* including the Python object header and alignment. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. function:: checksizeof(test, o, size) | ||
|
@@ -665,6 +657,11 @@ The :mod:`test.support` module defines the following functions: | |
have an associated comment identifying the relevant tracker issue. | ||
|
||
|
||
.. function:: system_must_validate_cert(f) | ||
|
||
A decorator that skips the test on TLS certification validation failures. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. decorator:: run_with_locale(catstr, *locales) | ||
|
||
A decorator for running a function in a different locale, correctly | ||
|
@@ -682,19 +679,19 @@ The :mod:`test.support` module defines the following functions: | |
.. decorator:: requires_freebsd_version(*min_version) | ||
|
||
Decorator for the minimum version when running test on FreeBSD. If the | ||
FreeBSD version is less than the minimum, raise :exc:`unittest.SkipTest`. | ||
FreeBSD version is less than the minimum, the test is skipped. | ||
|
||
|
||
.. decorator:: requires_linux_version(*min_version) | ||
|
||
Decorator for the minimum version when running test on Linux. If the | ||
Linux version is less than the minimum, raise :exc:`unittest.SkipTest`. | ||
Linux version is less than the minimum, the test is skipped. | ||
|
||
|
||
.. decorator:: requires_mac_version(*min_version) | ||
|
||
Decorator for the minimum version when running test on macOS. If the | ||
macOS version is less than the minimum, raise :exc:`unittest.SkipTest`. | ||
macOS version is less than the minimum, the test is skipped. | ||
|
||
|
||
.. decorator:: requires_IEEE_754 | ||
|
@@ -732,7 +729,7 @@ The :mod:`test.support` module defines the following functions: | |
Decorator for only running the test if :data:`HAVE_DOCSTRINGS`. | ||
|
||
|
||
.. decorator:: cpython_only(test) | ||
.. decorator:: cpython_only | ||
|
||
Decorator for tests only applicable to CPython. | ||
|
||
|
@@ -743,12 +740,12 @@ The :mod:`test.support` module defines the following functions: | |
returns ``False``, then uses *msg* as the reason for skipping the test. | ||
|
||
|
||
.. decorator:: no_tracing(func) | ||
.. decorator:: no_tracing | ||
|
||
Decorator to temporarily turn off tracing for the duration of the test. | ||
|
||
|
||
.. decorator:: refcount_test(test) | ||
.. decorator:: refcount_test | ||
|
||
Decorator for tests which involve reference counting. The decorator does | ||
not run the test if it is not run by CPython. Any trace function is unset | ||
|
@@ -771,10 +768,9 @@ The :mod:`test.support` module defines the following functions: | |
means the test doesn't support dummy runs when ``-M`` is not specified. | ||
|
||
|
||
.. decorator:: bigaddrspacetest(f) | ||
.. decorator:: bigaddrspacetest | ||
|
||
Decorator for tests that fill the address space. *f* is the function to | ||
wrap. | ||
Decorator for tests that fill the address space. | ||
|
||
|
||
.. function:: check_syntax_error(testcase, statement, errtext='', *, lineno=None, offset=None) | ||
|
@@ -876,7 +872,7 @@ The :mod:`test.support` module defines the following functions: | |
|
||
.. function:: check_free_after_iterating(test, iter, cls, args=()) | ||
|
||
Assert that *iter* is deallocated after iterating. | ||
Assert instances of *cls* are deallocated after iterating. | ||
|
||
|
||
.. function:: missing_compiler_executable(cmd_names=[]) | ||
|
@@ -967,6 +963,16 @@ The :mod:`test.support` module defines the following classes: | |
Class to save and restore signal handlers registered by the Python signal | ||
handler. | ||
|
||
.. method:: save(self) | ||
|
||
Save the signal handlers to a dictionary mapping signal numbers to the | ||
current signal handler. | ||
|
||
.. method:: restore(self) | ||
|
||
Set the signal numbers from the :meth:`save` dictionary to the saved | ||
handler. | ||
|
||
|
||
.. class:: Matcher() | ||
|
||
|
@@ -1110,11 +1116,11 @@ script execution tests. | |
variables *env_vars* succeeds (``rc == 0``) and return a ``(return code, | ||
stdout, stderr)`` tuple. | ||
|
||
If the ``__cleanenv`` keyword is set, *env_vars* is used as a fresh | ||
If the *__cleanenv* keyword is set, *env_vars* is used as a fresh | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
environment. | ||
|
||
Python is started in isolated mode (command line option ``-I``), | ||
except if the ``__isolated`` keyword is set to ``False``. | ||
except if the *__isolated* keyword is set to ``False``. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
.. versionchanged:: 3.9 | ||
The function no longer strips whitespaces from *stderr*. | ||
|
@@ -1225,15 +1231,17 @@ The :mod:`test.support.threading_helper` module provides support for threading t | |
is still alive after *timeout* seconds. | ||
|
||
|
||
.. decorator:: reap_threads(func) | ||
.. decorator:: reap_threads | ||
|
||
Decorator to ensure the threads are cleaned up even if the test fails. | ||
|
||
|
||
.. function:: start_threads(threads, unlock=None) | ||
|
||
Context manager to start *threads*. It attempts to join the threads upon | ||
exit. | ||
Context manager to start *threads*, which is a sequence of threads. | ||
*unlock* is a function called after the threads are started, even if an | ||
exception was raised; an example would be :meth:`threading.Event.set`. | ||
This also attempts to join the started threads upon exit. | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
.. function:: threading_cleanup(*original_values) | ||
|
@@ -1315,7 +1323,10 @@ The :mod:`test.support.os_helper` module provides support for os tests. | |
|
||
.. data:: TESTFN_NONASCII | ||
|
||
Set to a filename containing the :data:`FS_NONASCII` character. | ||
Set to a filename containing the :data:`FS_NONASCII` character, if it exists. | ||
This guarantees that if the filename exists, it can be encoded and decoded | ||
with the default filesystem encoding. This allows tests that require a | ||
non-ASCII filename to be easily skipped on platforms where they can't work. | ||
Comment on lines
+1337
to
+1340
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This currently feels like it leads with the implementation, and finishes with why it's useful ("This allows tests that require a non-ASCII filename to be easily skipped on platforms where they can't work"). The other way around might be better. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see your point, but I feel like the current sequence is more in line with the surrounding TESTFN_* paragraphs. |
||
|
||
|
||
.. data:: TESTFN_UNENCODABLE | ||
|
@@ -1414,12 +1425,15 @@ The :mod:`test.support.os_helper` module provides support for os tests. | |
|
||
Call :func:`os.rmdir` on *filename*. On Windows platforms, this is | ||
wrapped with a wait loop that checks for the existence of the file. | ||
This is needed due to antivirus programs that can hold files open and prevent | ||
JelleZijlstra marked this conversation as resolved.
Show resolved
Hide resolved
|
||
deletion. | ||
|
||
|
||
.. function:: rmtree(path) | ||
|
||
Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` and | ||
:func:`os.rmdir` to remove a path and its contents. On Windows platforms, | ||
:func:`os.rmdir` to remove a path and its contents. As with :func:`rmdir`, | ||
on Windows platforms | ||
this is wrapped with a wait loop that checks for the existence of the files. | ||
|
||
|
||
|
@@ -1466,7 +1480,8 @@ The :mod:`test.support.os_helper` module provides support for os tests. | |
|
||
.. function:: unlink(filename) | ||
|
||
Call :func:`os.unlink` on *filename*. On Windows platforms, this is | ||
Call :func:`os.unlink` on *filename*. As with :func:`rmdir`, | ||
on Windows platforms, this is | ||
wrapped with a wait loop that checks for the existence of the file. | ||
|
||
|
||
|
@@ -1523,7 +1538,7 @@ The :mod:`test.support.import_helper` module provides support for import tests. | |
.. versionadded:: 3.1 | ||
|
||
|
||
.. function:: import_module(name, deprecated=False, *, required_on()) | ||
.. function:: import_module(name, deprecated=False, *, required_on=()) | ||
|
||
This function imports and returns the named module. Unlike a normal | ||
import, this function raises :exc:`unittest.SkipTest` if the module | ||
|
@@ -1565,15 +1580,15 @@ The :mod:`test.support.import_helper` module provides support for import tests. | |
|
||
A context manager to force import to return a new module reference. This | ||
is useful for testing module-level behaviors, such as the emission of a | ||
DeprecationWarning on import. Example usage:: | ||
:exc:`DeprecationWarning` on import. Example usage:: | ||
|
||
with CleanImport('foo'): | ||
importlib.import_module('foo') # New reference. | ||
|
||
|
||
.. class:: DirsOnSysPath(*paths) | ||
|
||
A context manager to temporarily add directories to sys.path. | ||
A context manager to temporarily add directories to :data:`sys.path`. | ||
|
||
This makes a copy of :data:`sys.path`, appends any directories given | ||
as positional arguments, then reverts :data:`sys.path` to the copied | ||
|
Uh oh!
There was an error while loading. Please reload this page.