[Python-checkins] python/dist/src/Lib/test test_optparse.py, 1.4, 1.5

tim_one at users.sourceforge.net tim_one at users.sourceforge.net
Sat Jul 31 23:14:31 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24750/Lib/test

Modified Files:
	test_optparse.py 
Log Message:
Be more careful about reverting mutuations to system-wide (sys) variables.
This fixes 15 spurious test failures on Windows (probably all due to
the test leaving a wrong path in sys.argv[0], which then prevented
regrtest.py from finding the expected-output files for tests running
after test_optparse).


Index: test_optparse.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_optparse.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** test_optparse.py	31 Jul 2004 16:15:44 -0000	1.4
--- test_optparse.py	31 Jul 2004 21:14:28 -0000	1.5
***************
*** 126,142 ****
      def assertParseFail(self, cmdline_args, expected_output):
          """Assert the parser fails with the expected message."""
!         sys.stderr = StringIO()
!         self.assertRaises(self.parser.parse_args, (cmdline_args,), None,
!                           SystemExit, expected_output,
!                           self.redirected_stderr)
!         sys.stderr = sys.__stderr__
  
      def assertStdoutEquals(self, cmdline_args, expected_output):
          """Assert the parser prints the expected output on stdout."""
!         sys.stdout = StringIO()
!         self.assertRaises(self.parser.parse_args, (cmdline_args,), None,
!                           SystemExit, expected_output,
!                           self.redirected_stdout)
!         sys.stdout = sys.__stdout__
  
      def assertTypeError(self, func, expected_output, *args):
--- 126,148 ----
      def assertParseFail(self, cmdline_args, expected_output):
          """Assert the parser fails with the expected message."""
!         save_stderr = sys.stderr
!         try:
!             sys.stderr = StringIO()
!             self.assertRaises(self.parser.parse_args, (cmdline_args,), None,
!                               SystemExit, expected_output,
!                               self.redirected_stderr)
!         finally:
!             sys.stderr = save_stderr
  
      def assertStdoutEquals(self, cmdline_args, expected_output):
          """Assert the parser prints the expected output on stdout."""
!         save_stdout = sys.stdout
!         try:
!             sys.stdout = StringIO()
!             self.assertRaises(self.parser.parse_args, (cmdline_args,), None,
!                               SystemExit, expected_output,
!                               self.redirected_stdout)
!         finally:
!             sys.stdout = save_stdout
  
      def assertTypeError(self, func, expected_output, *args):
***************
*** 427,440 ****
      def test_default_progname(self):
          # Make sure that program name taken from sys.argv[0] by default.
!         sys.argv[0] = "/foo/bar/baz.py"
!         parser = OptionParser("usage: %prog ...", version="%prog 1.2")
!         expected_usage = "usage: baz.py ...\n"
!         self.assertUsage(parser, expected_usage)
!         self.assertVersion(parser, "baz.py 1.2")
!         self.assertHelp(parser,
!             expected_usage + "\n" +
!             "options:\n"
!             "  --version   show program's version number and exit\n"
!             "  -h, --help  show this help message and exit\n")
  
      def test_custom_progname(self):
--- 433,451 ----
      def test_default_progname(self):
          # Make sure that program name taken from sys.argv[0] by default.
!         save_argv = sys.argv[:]
!         try:
!             # XXX Should the path be hard-coding forward-slashes?
!             sys.argv[0] = "/foo/bar/baz.py"
!             parser = OptionParser("usage: %prog ...", version="%prog 1.2")
!             expected_usage = "usage: baz.py ...\n"
!             self.assertUsage(parser, expected_usage)
!             self.assertVersion(parser, "baz.py 1.2")
!             self.assertHelp(parser,
!                 expected_usage + "\n" +
!                 "options:\n"
!                 "  --version   show program's version number and exit\n"
!                 "  -h, --help  show this help message and exit\n")
!         finally:
!             sys.argv[:] = save_argv
  
      def test_custom_progname(self):



More information about the Python-checkins mailing list