Index: Lib/test/test_argparse.py =================================================================== --- Lib/test/test_argparse.py (revision 83942) +++ Lib/test/test_argparse.py (working copy) @@ -16,6 +16,8 @@ pass class TestCase(unittest.TestCase): + + COLUMNS_ENV_VAR_NAME = "COLUMNS" def assertEqual(self, obj1, obj2): if obj1 != obj2: @@ -26,8 +28,27 @@ print(obj2) super(TestCase, self).assertEqual(obj1, obj2) + def setUp(self): + self.setUpColumns() + def tearDown(self): + self.tearDownColumns() + + def setUpColumns(self): + # The tests assume that line wrapping occurs at 80 columns, which can be overridden by + # the COLUMNS environment variable; to ensure this assumption is true, unset COLUMNS if it + # is set and restore it after the test completes + if self.COLUMNS_ENV_VAR_NAME in os.environ: + self.old_columns = os.environ[self.COLUMNS_ENV_VAR_NAME] + del os.environ[self.COLUMNS_ENV_VAR_NAME] + def tearDownColumns(self): + try: + value = self.old_columns + except AttributeError: + return # COLUMNS environment variable must not have been set, so no need to restore + os.environ[self.COLUMNS_ENV_VAR_NAME] = value + class TempDirMixin(object): def setUp(self):