File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -167,7 +167,8 @@ def convert(mo):
167167 return self .delimiter
168168 if mo .group ('invalid' ) is not None :
169169 self ._invalid (mo )
170- raise ValueError ('Unrecognized named group in pattern' , pattern )
170+ raise ValueError ('Unrecognized named group in pattern' ,
171+ self .pattern )
171172 return self .pattern .sub (convert , self .template )
172173
173174 def safe_substitute (self , * args , ** kws ):
@@ -199,7 +200,8 @@ def convert(mo):
199200 return self .delimiter
200201 if mo .group ('invalid' ) is not None :
201202 self ._invalid (mo )
202- raise ValueError ('Unrecognized named group in pattern' , pattern )
203+ raise ValueError ('Unrecognized named group in pattern' ,
204+ self .pattern )
203205 return self .pattern .sub (convert , self .template )
204206
205207
Original file line number Diff line number Diff line change @@ -113,6 +113,18 @@ class MyPattern(Template):
113113 s = MyPattern ('@bag.foo.who likes to eat a bag of @bag.what' )
114114 self .assertEqual (s .substitute (m ), 'tim likes to eat a bag of ham' )
115115
116+ class BadPattern (Template ):
117+ pattern = r"""
118+ (?P<badname>.*) |
119+ (?P<escaped>@{2}) |
120+ @(?P<named>[_a-z][._a-z0-9]*) |
121+ @{(?P<braced>[_a-z][._a-z0-9]*)} |
122+ (?P<invalid>@) |
123+ """
124+ s = BadPattern ('@bag.foo.who likes to eat a bag of @bag.what' )
125+ self .assertRaises (ValueError , s .substitute , {})
126+ self .assertRaises (ValueError , s .safe_substitute , {})
127+
116128 def test_unicode_values (self ):
117129 s = Template ('$who likes $what' )
118130 d = dict (who = u't\xff m' , what = u'f\xfe \f ed' )
You can’t perform that action at this time.
0 commit comments