Restore original sys.path when running TTK tests

This commit is contained in:
Nick Coghlan 2009-10-17 14:40:54 +00:00
parent e363b1434d
commit 7df72dcdf9
3 changed files with 33 additions and 8 deletions

View file

@ -578,6 +578,31 @@ class EnvironmentVarGuard(UserDict.DictMixin):
self._environ[k] = v
class DirsOnSysPath(object):
"""Context manager to temporarily add directories to sys.path.
This makes a copy of sys.path, appends any directories given
as positional arguments, then reverts sys.path to the copied
settings when the context ends.
Note that *all* sys.path modifications in the body of the
context manager, including replacement of the object,
will be reverted at the end of the block.
"""
def __init__(self, *paths):
self.original_value = sys.path[:]
self.original_object = sys.path
sys.path.extend(paths)
def __enter__(self):
return self
def __exit__(self, *ignore_exc):
sys.path = self.original_object
sys.path[:] = self.original_value
class TransientResource(object):
"""Raise ResourceDenied if an exception is raised while the context manager