Merge pull request #20260 from edx/nedbat/context-managers-need-finally

Context managers need to clean up properly
This commit is contained in:
Ned Batchelder
2019-04-17 13:56:23 -04:00
committed by GitHub
8 changed files with 30 additions and 17 deletions

View File

@@ -164,9 +164,11 @@ def enable_named_outer_atomic(*names):
for name in names:
cache[name] = True
yield
for name in names:
del cache[name]
try:
yield
finally:
for name in names:
del cache[name]
class OuterAtomic(transaction.Atomic):

View File

@@ -108,8 +108,10 @@ def skip_signal(signal, **kwargs):
and then reconnecting the signal.
"""
signal.disconnect(**kwargs)
yield
signal.connect(**kwargs)
try:
yield
finally:
signal.connect(**kwargs)
class MockS3Mixin(object):