[3.13] gh-122546: Relax SyntaxError check when raising errors on the new REPL (GH-123233) (#123247)

gh-122546: Relax SyntaxError check when raising errors on the new REPL (GH-123233)
(cherry picked from commit 4c3f0cbeae)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
This commit is contained in:
Miss Islington (bot) 2024-08-23 02:32:11 +02:00 committed by GitHub
parent 30eee22d3f
commit fda8aec625
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 1 deletions

View file

@ -110,7 +110,7 @@ def showsyntaxerror(self, filename=None, **kwargs):
colorize = kwargs.pop('colorize', False) colorize = kwargs.pop('colorize', False)
try: try:
typ, value, tb = sys.exc_info() typ, value, tb = sys.exc_info()
if filename and typ is SyntaxError: if filename and issubclass(typ, SyntaxError):
value.filename = filename value.filename = filename
source = kwargs.pop('source', "") source = kwargs.pop('source', "")
self._showtraceback(typ, value, None, colorize, source) self._showtraceback(typ, value, None, colorize, source)

View file

@ -1109,6 +1109,10 @@ def test_correct_filename_in_syntaxerrors(self):
self.skipTest("pyrepl not available") self.skipTest("pyrepl not available")
self.assertIn("SyntaxError: invalid syntax", output) self.assertIn("SyntaxError: invalid syntax", output)
self.assertIn("<python-input-0>", output) self.assertIn("<python-input-0>", output)
commands = " b\nexit()\n"
output, exit_code = self.run_repl(commands, env=env)
self.assertIn("IndentationError: unexpected indent", output)
self.assertIn("<python-input-0>", output)
def run_repl( def run_repl(
self, self,