summaryrefslogtreecommitdiff
path: root/setuptools/tests/contexts.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/contexts.py')
-rw-r--r--setuptools/tests/contexts.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/setuptools/tests/contexts.py b/setuptools/tests/contexts.py
index 1d29284b..ae28c7c3 100644
--- a/setuptools/tests/contexts.py
+++ b/setuptools/tests/contexts.py
@@ -5,7 +5,8 @@ import sys
import contextlib
import site
-from ..compat import StringIO
+from setuptools.extern import six
+import pkg_resources
@contextlib.contextmanager
@@ -57,8 +58,8 @@ def quiet():
old_stdout = sys.stdout
old_stderr = sys.stderr
- new_stdout = sys.stdout = StringIO()
- new_stderr = sys.stderr = StringIO()
+ new_stdout = sys.stdout = six.StringIO()
+ new_stderr = sys.stderr = six.StringIO()
try:
yield new_stdout, new_stderr
finally:
@@ -78,6 +79,18 @@ def save_user_site_setting():
@contextlib.contextmanager
+def save_pkg_resources_state():
+ pr_state = pkg_resources.__getstate__()
+ # also save sys.path
+ sys_path = sys.path[:]
+ try:
+ yield pr_state, sys_path
+ finally:
+ sys.path[:] = sys_path
+ pkg_resources.__setstate__(pr_state)
+
+
+@contextlib.contextmanager
def suppress_exceptions(*excs):
try:
yield