cpython/Lib/test/test_importlib
Victor Stinner 1d032ea3d6
[3.12] gh-109974: Fix threading lock_tests race conditions (#110057) (#110346)
* gh-109974: Fix threading lock_tests race conditions (#110057)

Fix race conditions in test_threading lock tests. Wait until a
condition is met rather than using time.sleep() with a hardcoded
number of seconds.

* Replace sleeping loops with support.sleeping_retry() which raises
  an exception on timeout.
* Add wait_threads_blocked(nthread) which computes a sleep depending
  on the number of threads. Remove _wait() function.
* test_set_and_clear(): use a way longer Event.wait() timeout.
* BarrierTests.test_repr(): wait until the 2 threads are waiting for
  the barrier. Use a way longer timeout for Barrier.wait() timeout.
* test_thread_leak() no longer needs to count
  len(threading.enumerate()): Bunch uses
  threading_helper.wait_threads_exit() internally which does it in
  wait_for_finished().
* Add BaseLockTests.wait_phase() which implements a timeout.
  test_reacquire() and test_recursion_count() use wait_phase().

(cherry picked from commit 4e356ad183)

* gh-109974: Fix more threading lock_tests race conditions (#110089)

* Add context manager on Bunch class.
* Bunch now catchs exceptions on executed functions and re-raise them
  at __exit__() as an ExceptionGroup.
* Rewrite BarrierProxy.test_default_timeout(). Use a single thread.
  Only check that barrier.wait() blocks for at least default timeout
  seconds.
* test_with(): inline _with() function.

(cherry picked from commit 743e3572ee)
2023-10-04 11:26:45 +00:00
..
builtin gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
data bpo-44893: Implement EntryPoint as simple class with attributes. (GH-30150) 2021-12-16 15:49:42 -05:00
extension gh-103247: clear the module cache in a test in test_importlib/extensions/test_loader.py (GH-104226) 2023-05-10 00:59:04 +00:00
frozen gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
import_ gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
namespace_pkgs
partial bpo-43517: Fix false positive in detection of circular imports (#24895) 2021-03-20 20:07:44 +01:00
resources gh-97930: Apply changes from importlib_resources 5.12. (GH-102010) 2023-02-18 16:29:22 -05:00
source gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
__init__.py
__main__.py
_context.py Sync with importlib_metadata 6.5 (GH-103584) 2023-04-20 22:12:48 -04:00
_path.py Sync with importlib_metadata 6.5 (GH-103584) 2023-04-20 22:12:48 -04:00
abc.py
fixtures.py gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
stubs.py bpo-39595: Improve zipfile.Path performance (#18406) 2020-02-11 21:58:47 -05:00
test_abc.py gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
test_api.py gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
test_lazy.py bpo-46425: fix direct invocation of test_importlib (GH-30682) 2022-01-22 18:05:05 +02:00
test_locks.py [3.12] gh-109974: Fix threading lock_tests race conditions (#110057) (#110346) 2023-10-04 11:26:45 +00:00
test_main.py [3.12] gh-106300: Improve assertRaises(Exception) usages in tests (GH-106302) (GH-106534) 2023-07-07 14:25:24 -07:00
test_metadata_api.py gh-103661: Apply bugfix from importlib_metadata 6.5.1 and restore test. (#103681) 2023-04-22 13:52:51 -04:00
test_namespace_pkgs.py gh-98139: enhance namespace package repr 2022-11-06 22:13:40 +00:00
test_pkg_import.py bpo-43651: PEP 597: Fix EncodingWarning in some tests (GH-25181) 2021-04-05 13:11:23 +09:00
test_spec.py gh-97850: Remove deprecated functions from importlib.utils (#97898) 2022-10-06 17:57:10 -07:00
test_threaded_import.py [3.12] Fix test_importlib.test_side_effect_import() (GH-104840) (#104842) 2023-05-25 02:36:13 +02:00
test_util.py [3.12] Update the expected bytecode magic in test_importlib.test_util (#107626) 2023-08-04 13:41:03 +00:00
test_windows.py gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00
test_zip.py bpo-46425: Partially revert "bpo-46425: fix direct invocation of test_importlib (GH-30682)" (GH-30799) 2022-01-22 21:38:26 -05:00
threaded_import_hangers.py bpo-19696: Move threaded_import_hangers (GH-14655) 2019-07-12 14:22:05 -07:00
util.py gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059) 2023-05-03 04:55:22 -07:00