classification
Title: test_cmd_line_script fails with verbosity level more than 1
Type: behavior Stage: resolved
Components: Tests Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: miss-islington, terry.reedy, xtreak
Priority: normal Keywords: patch

Created on 2020-09-06 04:57 by xtreak, last changed 2020-09-12 09:10 by xtreak. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 22206 merged terry.reedy, 2020-09-11 23:15
PR 22213 merged miss-islington, 2020-09-12 06:25
PR 22214 merged miss-islington, 2020-09-12 06:25
Messages (6)
msg376457 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2020-09-06 04:57
When verbosity level is more than 1 the test tries to print the script_exec_args passed to script. It fails when the tuple has more than 1 elements and is used in formatting with %r. The two tests fail as below : 

./python -m test test_cmd_line_script -vv

======================================================================
ERROR: test_package_error (test.test_cmd_line_script.CmdLineTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/cpython/Lib/test/test_cmd_line_script.py", line 368, in test_package_error
    self._check_import_error(["-m", "test_pkg"], msg, cwd=script_dir)
  File "/root/cpython/Lib/test/test_cmd_line_script.py", line 148, in _check_import_error
    print('Output from test script %r:' % script_exec_args)
TypeError: not all arguments converted during string formatting

======================================================================
ERROR: test_package_recursion (test.test_cmd_line_script.CmdLineTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/cpython/Lib/test/test_cmd_line_script.py", line 379, in test_package_recursion
    self._check_import_error(["-m", "test_pkg"], msg, cwd=script_dir)
  File "/root/cpython/Lib/test/test_cmd_line_script.py", line 148, in _check_import_error
    print('Output from test script %r:' % script_exec_args)
TypeError: not all arguments converted during string formatting

----------------------------------------------------------------------

Ran 44 tests in 4.936s

FAILED (errors=2)
test test_cmd_line_script failed
test_cmd_line_script failed

== Tests result: FAILURE ==

1 test failed:
    test_cmd_line_script

Total duration: 5.0 sec
Tests result: FAILURE
msg376746 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-09-11 23:05
I verified with master on Win10 debug 32 build. The relevant lines, 147-151, are

        if verbose > 1:
            print('Output from test script %r:' % script_exec_args)
            print(repr(err))
            print('Expected output: %r' % expected_msg)
        self.assertIn(expected_msg.encode('utf-8'), err)

Normally, 'script_exec_args' is singular, the absolute file name to be executed.  In the two failing cases, file 'name' is an import name, preceded by -m.  Line 148 prints an informational header, when very verbose is requested, that only serves to identify the following lines. It is *not* tested.  Therefore, we need not worry about the exact format, just avoiding a spurious error.  The following is equivalent except when the value is a list (which should have been a tuple), when is prints without error:

            print(f'Output from test script {script_exec_args!r:}')

"Output from test script ['-m', 'test_pkg']:" seems clear enough for any human reader.    I ran entire suite with -vv and did not find any other new, unexpected errors.  PR to follow shortly.
msg376780 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-09-12 06:25
New changeset 7e711ead26fea6465e0ef2e3b8880b57ba8fc129 by Terry Jan Reedy in branch 'master':
bpo-41731: Make test_cmd_line_script pass with -vv (GH-22206)
https://github.com/python/cpython/commit/7e711ead26fea6465e0ef2e3b8880b57ba8fc129
msg376781 - (view) Author: miss-islington (miss-islington) Date: 2020-09-12 06:43
New changeset 77901dc6c3d06dd31f6c84b2d3cb21dc26b1e351 by Miss Islington (bot) in branch '3.8':
bpo-41731: Make test_cmd_line_script pass with -vv (GH-22206)
https://github.com/python/cpython/commit/77901dc6c3d06dd31f6c84b2d3cb21dc26b1e351
msg376782 - (view) Author: miss-islington (miss-islington) Date: 2020-09-12 06:45
New changeset 34e3c7592be70f652c293eb179593bf2928adeb4 by Miss Islington (bot) in branch '3.9':
bpo-41731: Make test_cmd_line_script pass with -vv (GH-22206)
https://github.com/python/cpython/commit/34e3c7592be70f652c293eb179593bf2928adeb4
msg376797 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2020-09-12 09:10
Thanks Terry.
History
Date User Action Args
2020-09-12 09:10:39xtreaksetmessages: + msg376797
2020-09-12 08:34:37terry.reedysetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2020-09-12 06:45:41miss-islingtonsetmessages: + msg376782
2020-09-12 06:43:37miss-islingtonsetmessages: + msg376781
2020-09-12 06:25:59miss-islingtonsetpull_requests: + pull_request21269
2020-09-12 06:25:52miss-islingtonsetnosy: + miss-islington
pull_requests: + pull_request21268
2020-09-12 06:25:43terry.reedysetmessages: + msg376780
2020-09-11 23:15:32terry.reedysetkeywords: + patch
stage: patch review
pull_requests: + pull_request21260
2020-09-11 23:05:18terry.reedysetnosy: + terry.reedy
messages: + msg376746
2020-09-06 04:57:49xtreakcreate