mirror of https://github.com/python/cpython
#17341: Include name in re error message about invalid group name.
Patch by Jason Michalski.
This commit is contained in:
parent
f2fa5fc794
commit
26dfaac9ac
|
@ -600,7 +600,7 @@ def _parse(source, state):
|
|||
if not name:
|
||||
raise error("missing group name")
|
||||
if not name.isidentifier():
|
||||
raise error("bad character in group name")
|
||||
raise error("bad character in group name %r" % name)
|
||||
elif sourcematch("="):
|
||||
# named backreference
|
||||
name = ""
|
||||
|
@ -614,7 +614,8 @@ def _parse(source, state):
|
|||
if not name:
|
||||
raise error("missing group name")
|
||||
if not name.isidentifier():
|
||||
raise error("bad character in group name")
|
||||
raise error("bad character in backref group name "
|
||||
"%r" % name)
|
||||
gid = state.groupdict.get(name)
|
||||
if gid is None:
|
||||
raise error("unknown group name")
|
||||
|
|
|
@ -3,6 +3,7 @@ from test.support import verbose, run_unittest, gc_collect, bigmemtest, _2G, \
|
|||
import io
|
||||
import re
|
||||
from re import Scanner
|
||||
import sre_constants
|
||||
import sys
|
||||
import string
|
||||
import traceback
|
||||
|
@ -1029,6 +1030,16 @@ class ReTests(unittest.TestCase):
|
|||
self.assertRaises(OverflowError, re.compile, r".{,%d}" % MAXREPEAT)
|
||||
self.assertRaises(OverflowError, re.compile, r".{%d,}?" % MAXREPEAT)
|
||||
|
||||
def test_backref_group_name_in_exception(self):
|
||||
# Issue 17341: Poor error message when compiling invalid regex
|
||||
with self.assertRaisesRegex(sre_constants.error, '<foo>'):
|
||||
re.compile('(?P=<foo>)')
|
||||
|
||||
def test_group_name_in_exception(self):
|
||||
# Issue 17341: Poor error message when compiling invalid regex
|
||||
with self.assertRaisesRegex(sre_constants.error, '\?foo'):
|
||||
re.compile('(?P<?foo>)')
|
||||
|
||||
|
||||
def run_re_tests():
|
||||
from test.re_tests import tests, SUCCEED, FAIL, SYNTAX_ERROR
|
||||
|
|
|
@ -805,6 +805,7 @@ Piotr Meyer
|
|||
Alexis Métaireau
|
||||
Steven Miale
|
||||
Trent Mick
|
||||
Jason Michalski
|
||||
Franck Michea
|
||||
Tom Middleton
|
||||
Stan Mihai
|
||||
|
|
|
@ -29,6 +29,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #17341: Include the invalid name in the error messages from re about
|
||||
invalid group names.
|
||||
|
||||
- Issue #17702: os.environ now raises KeyError with the original environment
|
||||
variable name (str on UNIX), instead of using the encoded name (bytes on
|
||||
UNIX).
|
||||
|
|
Loading…
Reference in New Issue