]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-121711: Set `-m asyncio` return_code to 1 for ENOTTY (#121714)
authorMilan Oberkirch <milan.oberkirch@geops.com>
Sat, 13 Jul 2024 15:17:24 +0000 (17:17 +0200)
committerGitHub <noreply@github.com>
Sat, 13 Jul 2024 15:17:24 +0000 (17:17 +0200)
Set return_code to 1 for ENOTTY

Lib/asyncio/__main__.py
Lib/test/test_repl.py

index 3e2fe93943d4edcb7c9c0c6b89e23cf73c43713e..95147171c2b79d22381c76d0e8e1b36af2e2f433 100644 (file)
@@ -106,7 +106,8 @@ class REPLThread(threading.Thread):
                 if os.getenv("PYTHON_BASIC_REPL"):
                     raise RuntimeError("user environment requested basic REPL")
                 if not os.isatty(sys.stdin.fileno()):
-                    raise OSError(errno.ENOTTY, "tty required", "stdin")
+                    return_code = errno.ENOTTY
+                    raise OSError(return_code, "tty required", "stdin")
 
                 # This import will fail on operating systems with no termios.
                 from _pyrepl.simple_interact import (
index 1caf09ceaf10fc4a9e9ec3713e329ab40cab22b3..0e73fb6249c78709ac5a0a1568327ca5cfc13744 100644 (file)
@@ -7,7 +7,7 @@ import unittest
 from textwrap import dedent
 from test import support
 from test.support import cpython_only, has_subprocess_support, SuppressCrashReport
-from test.support.script_helper import kill_python, assert_python_ok
+from test.support.script_helper import assert_python_failure, kill_python, assert_python_ok
 from test.support.import_helper import import_module
 
 
@@ -195,8 +195,8 @@ class TestInteractiveInterpreter(unittest.TestCase):
         expected = "(30, None, [\'def foo(x):\\n\', \'    return x + 1\\n\', \'\\n\'], \'<stdin>\')"
         self.assertIn(expected, output, expected)
 
-    def test_asyncio_repl_is_ok(self):
-        assert_python_ok("-m", "asyncio")
+    def test_asyncio_repl_no_tty_fails(self):
+        assert assert_python_failure("-m", "asyncio")
 
 
 class TestInteractiveModeSyntaxErrors(unittest.TestCase):