diff options
author | Brett Cannon <bcannon@gmail.com> | 2011-02-21 19:29:56 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2011-02-21 19:29:56 (GMT) |
commit | 31f5929c1e28adcaa1fdb302da366f3c7a92a98a (patch) | |
tree | 5035df0c8c20111fb27a4940e38401f244bc9854 /Lib/test/regrtest.py | |
parent | 4709ec0686ba85466a293b85a243979882696240 (diff) | |
download | cpython-31f5929c1e28adcaa1fdb302da366f3c7a92a98a.zip cpython-31f5929c1e28adcaa1fdb302da366f3c7a92a98a.tar.gz cpython-31f5929c1e28adcaa1fdb302da366f3c7a92a98a.tar.bz2 |
Issue #10990: Prevent tests from clobbering a set trace function.
Many tests simply didn't care if they unset a pre-existing trace function. This
made test coverage impossible. This patch fixes various tests to put back any
pre-existing trace function. It also introduces test.support.no_tracing as a
decorator which will temporarily unset the trace function for tests which
simply fail otherwise.
Thanks to Kristian Vlaardingerbroek for helping to find the cause of various
trace function unsets.
Diffstat (limited to 'Lib/test/regrtest.py')
-rwxr-xr-x | Lib/test/regrtest.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index b5288b5..440c01d 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -827,7 +827,7 @@ class saved_test_environment: resources = ('sys.argv', 'cwd', 'sys.stdin', 'sys.stdout', 'sys.stderr', 'os.environ', 'sys.path', 'sys.path_hooks', '__import__', 'warnings.filters', 'asyncore.socket_map', - 'logging._handlers', 'logging._handlerList') + 'logging._handlers', 'logging._handlerList', 'sys.gettrace') def get_sys_argv(self): return id(sys.argv), sys.argv, sys.argv[:] @@ -874,6 +874,11 @@ class saved_test_environment: sys.path_hooks = saved_hooks[1] sys.path_hooks[:] = saved_hooks[2] + def get_sys_gettrace(self): + return sys.gettrace() + def restore_sys_gettrace(self, trace_fxn): + sys.settrace(trace_fxn) + def get___import__(self): return builtins.__import__ def restore___import__(self, import_): |