summaryrefslogtreecommitdiff
path: root/coverage/test_helpers.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-08-17 20:38:47 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-08-17 20:38:47 -0400
commit17864e90d64308912feab0c3015a8def716ccbfc (patch)
tree6ab52fba6dab3d99a4241c701b9c223f8301f59e /coverage/test_helpers.py
parenta280190d816e5bdbfd28821895eaa6d7ea3756fd (diff)
downloadpython-coveragepy-git-17864e90d64308912feab0c3015a8def716ccbfc.tar.gz
Context managers wouldn't clean up during exceptions.
Diffstat (limited to 'coverage/test_helpers.py')
-rw-r--r--coverage/test_helpers.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/coverage/test_helpers.py b/coverage/test_helpers.py
index 574a38d4..50cc3298 100644
--- a/coverage/test_helpers.py
+++ b/coverage/test_helpers.py
@@ -53,16 +53,20 @@ def change_dir(new_dir):
"""
old_dir = os.getcwd()
os.chdir(new_dir)
- yield os.getcwd()
- os.chdir(old_dir)
+ try:
+ yield os.getcwd()
+ finally:
+ os.chdir(old_dir)
@contextlib.contextmanager
def saved_sys_path():
"""Save sys.path, and restore it later."""
old_syspath = sys.path[:]
- yield
- sys.path = old_syspath
+ try:
+ yield
+ finally:
+ sys.path = old_syspath
def setup_with_context_manager(testcase, cm):