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
commita93e08dc9ec2c75429002e6bc3e68e2720924f43 (patch)
treeabb30e0b8cd2d061b96aade5d0c3fec364d495f4 /coverage/test_helpers.py
parentdc846e2c6b2c988a90a8d6b8383bcc4bc2b5d032 (diff)
downloadpython-coveragepy-a93e08dc9ec2c75429002e6bc3e68e2720924f43.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 574a38d..50cc329 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):