[3.13] gh-121711: Set -m asyncio return_code to 1 for ENOTTY (GH-121714) (GH-121718)

Set return_code to 1 for ENOTTY
(cherry picked from commit a183474293)

Co-authored-by: Milan Oberkirch <milan.oberkirch@geops.com>
This commit is contained in:
Miss Islington (bot) 2024-07-13 18:24:52 +02:00 committed by GitHub
parent 14c5bffcc5
commit f0c29a2d9f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 4 deletions

View file

@ -106,7 +106,8 @@ class REPLThread(threading.Thread):
if os.getenv("PYTHON_BASIC_REPL"): if os.getenv("PYTHON_BASIC_REPL"):
raise RuntimeError("user environment requested basic REPL") raise RuntimeError("user environment requested basic REPL")
if not os.isatty(sys.stdin.fileno()): 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. # This import will fail on operating systems with no termios.
from _pyrepl.simple_interact import ( from _pyrepl.simple_interact import (

View file

@ -7,7 +7,7 @@ import unittest
from textwrap import dedent from textwrap import dedent
from test import support from test import support
from test.support import cpython_only, has_subprocess_support, SuppressCrashReport 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 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>\')" expected = "(30, None, [\'def foo(x):\\n\', \' return x + 1\\n\', \'\\n\'], \'<stdin>\')"
self.assertIn(expected, output, expected) self.assertIn(expected, output, expected)
def test_asyncio_repl_is_ok(self): def test_asyncio_repl_no_tty_fails(self):
assert_python_ok("-m", "asyncio") assert assert_python_failure("-m", "asyncio")
class TestInteractiveModeSyntaxErrors(unittest.TestCase): class TestInteractiveModeSyntaxErrors(unittest.TestCase):