Merge pull request #20260 from edx/nedbat/context-managers-need-finally
Context managers need to clean up properly
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user