diff options
author | R. David Murray <rdmurray@bitdance.com> | 2009-10-05 17:03:09 (GMT) |
---|---|---|
committer | R. David Murray <rdmurray@bitdance.com> | 2009-10-05 17:03:09 (GMT) |
commit | abe3d3ec85893dcb6c0e5851fc607ced61b3336e (patch) | |
tree | 08c3c653ff8dbd01430dd0e2889c582bb5bd6c03 | |
parent | 245d915e3ecba012b3d42d750460997e3e0a95d4 (diff) | |
download | cpython-abe3d3ec85893dcb6c0e5851fc607ced61b3336e.zip cpython-abe3d3ec85893dcb6c0e5851fc607ced61b3336e.tar.gz cpython-abe3d3ec85893dcb6c0e5851fc607ced61b3336e.tar.bz2 |
Issue #7058: Added save/restore for argv and os.environ to runtest_inner
in regrtest, with warnings if the called test modifies them.
-rwxr-xr-x | Lib/test/regrtest.py | 15 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 3569bf2..e8c36f4 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -641,6 +641,10 @@ def runtest_inner(test, verbose, quiet, refleak = False # True if the test leaked references. try: save_stdout = sys.stdout + # Save various things that tests may mess up so we can restore + # them afterward. + save_environ = dict(os.environ) + save_argv = sys.argv[:] try: if capture_stdout: sys.stdout = capture_stdout @@ -663,6 +667,17 @@ def runtest_inner(test, verbose, quiet, test_time = time.time() - start_time finally: sys.stdout = save_stdout + # Restore what we saved if needed, but also complain if the test + # changed it so that the test may eventually get fixed. + if not os.environ == save_environ: + if not quiet: + print "Warning: os.environ was modified by", test + os.environ.clear() + os.environ.update(save_environ) + if not sys.argv == save_argv: + if not quiet: + print "Warning: argv was modified by", test + sys.argv[:] = save_argv except test_support.ResourceDenied, msg: if not quiet: print test, "skipped --", msg @@ -1436,6 +1436,9 @@ Extension Modules Tests ----- +- Issue #7058: Added save/restore for argv and os.environ to runtest_inner + in regrtest, with warnings if the called test modifies them. + - Issue #7042: Fix test_signal (test_itimer_virtual) failure on OS X 10.6. - Issue #6806: test_platform failed under OS X 10.6.0 because ``sw_ver`` leaves |