mirror of
https://github.com/python/cpython.git
synced 2025-10-22 14:42:22 +00:00
importlib.test.source.util referenced variables in the 'finally' part of a
try/finally which may not have been set.
This commit is contained in:
parent
d83f1e6d61
commit
0ae4511624
2 changed files with 10 additions and 2 deletions
|
@ -55,6 +55,8 @@ def create_modules(*names):
|
||||||
source = 'attr = {0!r}'
|
source = 'attr = {0!r}'
|
||||||
created_paths = []
|
created_paths = []
|
||||||
mapping = {}
|
mapping = {}
|
||||||
|
state_manager = None
|
||||||
|
uncache_manager = None
|
||||||
try:
|
try:
|
||||||
temp_dir = tempfile.gettempdir()
|
temp_dir = tempfile.gettempdir()
|
||||||
mapping['.root'] = temp_dir
|
mapping['.root'] = temp_dir
|
||||||
|
@ -85,8 +87,10 @@ def create_modules(*names):
|
||||||
state_manager.__enter__()
|
state_manager.__enter__()
|
||||||
yield mapping
|
yield mapping
|
||||||
finally:
|
finally:
|
||||||
state_manager.__exit__(None, None, None)
|
if state_manager is not None:
|
||||||
uncache_manager.__exit__(None, None, None)
|
state_manager.__exit__(None, None, None)
|
||||||
|
if uncache_manager is not None:
|
||||||
|
uncache_manager.__exit__(None, None, None)
|
||||||
# Reverse the order for path removal to unroll directory creation.
|
# Reverse the order for path removal to unroll directory creation.
|
||||||
for path in reversed(created_paths):
|
for path in reversed(created_paths):
|
||||||
if file_path.endswith('.py'):
|
if file_path.endswith('.py'):
|
||||||
|
|
|
@ -354,6 +354,10 @@ Documentation
|
||||||
Tests
|
Tests
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #7248: In importlib.test.source.util a try/finally block did not make
|
||||||
|
sure that some referenced objects actually were created in the block before
|
||||||
|
calling methods on the object.
|
||||||
|
|
||||||
- Issue #7222: Make thread "reaping" more reliable so that reference
|
- Issue #7222: Make thread "reaping" more reliable so that reference
|
||||||
leak-chasing test runs give sensible results. The previous method of
|
leak-chasing test runs give sensible results. The previous method of
|
||||||
reaping threads could return successfully while some Thread objects were
|
reaping threads could return successfully while some Thread objects were
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue