Kaydet (Commit) e7d7caa1 authored tarafından Tim Peters's avatar Tim Peters

TestHelp.make_parser(): This was making a permanent change to

os.environ (setting envar COLUMNS), which at least caused
test_float_default() to fail if the tests were run more than once.

This repairs the test_optparse -R failures Neal reported on
python-dev.  It also explains some seemingly bizarre test_optparse
failures we saw a couple weeks ago on the buildbots, when
test_optparse failed due to test_file failing to clean up after
itself, and then test_optparse failed in an entirely different
way when regrtest's -w option ran test_optparse a second time.
It's now obvious that make_parser() permanently changing os.environ
was responsible for the second half of that.
üst c314ac54
...@@ -1460,8 +1460,19 @@ class TestHelp(BaseTest): ...@@ -1460,8 +1460,19 @@ class TestHelp(BaseTest):
make_option("--foo", action="append", type="string", dest='foo', make_option("--foo", action="append", type="string", dest='foo',
help="store FOO in the foo list for later fooing"), help="store FOO in the foo list for later fooing"),
] ]
# The parser constructor looks at the COLUMNS envar. We need to
# restore the original value after the parser is constructed, else
# that's a permanent change possibly affecting other tests, and
# definitely affecting these tests when they're run multiple times.
orig_columns = os.environ.get('COLUMNS')
os.environ['COLUMNS'] = str(columns) os.environ['COLUMNS'] = str(columns)
return InterceptingOptionParser(option_list=options) try:
return InterceptingOptionParser(option_list=options)
finally:
if orig_columns is None:
del os.environ['COLUMNS']
else:
os.environ['COLUMNS'] = orig_columns
def assertHelpEquals(self, expected_output): def assertHelpEquals(self, expected_output):
if type(expected_output) is types.UnicodeType: if type(expected_output) is types.UnicodeType:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment