Kaydet (Commit) 0ae45116 authored tarafından Brett Cannon's avatar Brett Cannon

importlib.test.source.util referenced variables in the 'finally' part of a

try/finally which may not have been set.
üst d83f1e6d
...@@ -55,6 +55,8 @@ def create_modules(*names): ...@@ -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): ...@@ -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 ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment