]> granicus.if.org Git - python/commitdiff
Close issue #14026 by better testing sys.argv handling in test_cmd_line_script (patch...
authorNick Coghlan <ncoghlan@gmail.com>
Sun, 22 Apr 2012 07:11:33 +0000 (17:11 +1000)
committerNick Coghlan <ncoghlan@gmail.com>
Sun, 22 Apr 2012 07:11:33 +0000 (17:11 +1000)
Lib/test/test_cmd_line_script.py
Misc/NEWS

index 4d51ab624236072f2a1328a3a8a488779e9db9a2..77af347bb8f580617d1089edc70ae7e2f201b5d9 100644 (file)
@@ -13,6 +13,8 @@ from test.script_helper import (
 
 verbose = support.verbose
 
+example_args = ['test1', 'test2', 'test3']
+
 test_source = """\
 # Script may be run with optimisation enabled, so don't rely on assert
 # statements being executed
@@ -36,6 +38,9 @@ print('__package__==%r' % __package__)
 # Check the sys module
 import sys
 assertIdentical(globals(), sys.modules[__name__].__dict__)
+from test import test_cmd_line_script
+example_args_list = test_cmd_line_script.example_args
+assertEqual(sys.argv[1:], example_args_list)
 print('sys.argv[0]==%a' % sys.argv[0])
 print('sys.path[0]==%a' % sys.path[0])
 # Check the working directory
@@ -100,7 +105,7 @@ class CmdLineTest(unittest.TestCase):
                             *cmd_line_switches):
         if not __debug__:
             cmd_line_switches += ('-' + 'O' * sys.flags.optimize,)
-        run_args = cmd_line_switches + (script_name,)
+        run_args = cmd_line_switches + (script_name,) + tuple(example_args)
         rc, out, err = assert_python_ok(*run_args)
         self._check_output(script_name, rc, out + err, expected_file,
                            expected_argv0, expected_path0, expected_package)
@@ -240,7 +245,7 @@ class CmdLineTest(unittest.TestCase):
                 pkg_dir = os.path.join(script_dir, 'test_pkg')
                 make_pkg(pkg_dir, "import sys; print('init_argv0==%r' % sys.argv[0])")
                 script_name = _make_test_script(pkg_dir, 'script')
-                rc, out, err = assert_python_ok('-m', 'test_pkg.script')
+                rc, out, err = assert_python_ok('-m', 'test_pkg.script', *example_args)
                 if verbose > 1:
                     print(out)
                 expected = "init_argv0==%r" % '-m'
@@ -270,7 +275,7 @@ class CmdLineTest(unittest.TestCase):
             with support.temp_cwd(path=script_dir):
                 with open("-m", "w") as f:
                     f.write("data")
-                    rc, out, err = assert_python_ok('-m', 'other')
+                    rc, out, err = assert_python_ok('-m', 'other', *example_args)
                     self._check_output(script_name, rc, out,
                                       script_name, script_name, '', '')
 
index 56d48764b2f96f905f71df60f12aa4a41d082126..cc243be2e15eed4d34dee6d7522d6a7d97ffc9a7 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -161,6 +161,9 @@ Extension Modules
 Tests
 -----
 
+- Issue #14026: In test_cmd_line_script, check that sys.argv is populated
+  correctly for the various invocation approaches (Patch by Jason Yeo)
+
 - Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging
   message (Patch by Jason Yeo)