mirror of
https://github.com/python/cpython.git
synced 2025-10-17 20:28:43 +00:00
Fix issue # 15033 - Return the proper exitcode for failure when modules are invoked using -m switch. Patch contributed by Jeff Knupp
This commit is contained in:
parent
035997f1a3
commit
f01a337950
3 changed files with 19 additions and 1 deletions
|
@ -279,6 +279,21 @@ class CmdLineTest(unittest.TestCase):
|
||||||
self._check_output(script_name, rc, out,
|
self._check_output(script_name, rc, out,
|
||||||
script_name, script_name, '', '')
|
script_name, script_name, '', '')
|
||||||
|
|
||||||
|
def test_dash_m_error_code_is_one(self):
|
||||||
|
# If a module is invoked with the -m command line flag
|
||||||
|
# and results in an error that the return code to the
|
||||||
|
# shell is '1'
|
||||||
|
with temp_dir() as script_dir:
|
||||||
|
with support.temp_cwd(path=script_dir):
|
||||||
|
pkg_dir = os.path.join(script_dir, 'test_pkg')
|
||||||
|
make_pkg(pkg_dir)
|
||||||
|
script_name = _make_test_script(pkg_dir, 'other',
|
||||||
|
"if __name__ == '__main__': raise ValueError")
|
||||||
|
rc, out, err = assert_python_failure('-m', 'test_pkg.other', *example_args)
|
||||||
|
if verbose > 1:
|
||||||
|
print(out)
|
||||||
|
self.assertEqual(rc, 1)
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
support.run_unittest(CmdLineTest)
|
support.run_unittest(CmdLineTest)
|
||||||
support.reap_children()
|
support.reap_children()
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.2.4
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
|
||||||
|
return the proper failure return value (1). Patch contributed by Jeff Knupp.
|
||||||
|
|
||||||
- Issue #12268: File readline, readlines and read() or readall() methods
|
- Issue #12268: File readline, readlines and read() or readall() methods
|
||||||
no longer lose data when an underlying read system call is interrupted.
|
no longer lose data when an underlying read system call is interrupted.
|
||||||
IOError is no longer raised due to a read system call returning EINTR
|
IOError is no longer raised due to a read system call returning EINTR
|
||||||
|
|
|
@ -673,7 +673,7 @@ Py_Main(int argc, wchar_t **argv)
|
||||||
sts = run_command(command, &cf);
|
sts = run_command(command, &cf);
|
||||||
free(command);
|
free(command);
|
||||||
} else if (module) {
|
} else if (module) {
|
||||||
sts = RunModule(module, 1);
|
sts = (RunModule(module, 1) != 0);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue