diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2018-02-17 06:53:24 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-17 06:53:24 (GMT) |
commit | afb5e5583694798793d44f35f901aa912ece278a (patch) | |
tree | 6d028f6af26a7eab5ca2c683fb042d8376f54180 | |
parent | 025544a855ef3f3f7f21c1b6e4f19b47dcd30933 (diff) | |
download | cpython-afb5e5583694798793d44f35f901aa912ece278a.zip cpython-afb5e5583694798793d44f35f901aa912ece278a.tar.gz cpython-afb5e5583694798793d44f35f901aa912ece278a.tar.bz2 |
bpo-32852: Fix trace changing sys.argv to tuple. (GH-5692)
(cherry picked from commit 9f4223261fd129ad7b9a09b2b0d625d1bb90b22b)
Co-authored-by: Kyle Altendorf <sda@fstab.net>
-rw-r--r-- | Lib/test/test_trace.py | 10 | ||||
-rwxr-xr-x | Lib/trace.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py index 1d87aea..e04ca01 100644 --- a/Lib/test/test_trace.py +++ b/Lib/test/test_trace.py @@ -387,5 +387,15 @@ class TestCommandLine(unittest.TestCase): status, stdout, stderr = assert_python_ok('-m', 'trace', '-l', TESTFN) self.assertIn(b'functions called:', stdout) + def test_sys_argv_list(self): + with open(TESTFN, 'w') as fd: + self.addCleanup(unlink, TESTFN) + fd.write("import sys\n") + fd.write("print(type(sys.argv))\n") + + status, direct_stdout, stderr = assert_python_ok(TESTFN) + status, trace_stdout, stderr = assert_python_ok('-m', 'trace', '-l', TESTFN) + self.assertIn(direct_stdout.strip(), trace_stdout) + if __name__ == '__main__': unittest.main() diff --git a/Lib/trace.py b/Lib/trace.py index 48a1d1b..ade7616 100755 --- a/Lib/trace.py +++ b/Lib/trace.py @@ -705,7 +705,7 @@ def main(): if opts.filename is None: parser.error('filename is missing: required with the main options') - sys.argv = opts.filename, *opts.arguments + sys.argv = [opts.filename, *opts.arguments] sys.path[0] = os.path.dirname(opts.filename) t = Trace(opts.count, opts.trace, countfuncs=opts.listfuncs, diff --git a/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst b/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst new file mode 100644 index 0000000..8eabbfa --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst @@ -0,0 +1 @@ +Make sure sys.argv remains as a list when running trace. |