mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
Fix and test for bug #764548:
Use isinstance() instead of comparing types directly, to enable subclasses of str and unicode to be used as patterns. Blessed by /F.
This commit is contained in:
parent
5e4e39f12a
commit
12723bacea
3 changed files with 17 additions and 7 deletions
|
@ -474,6 +474,16 @@ class ReTests(unittest.TestCase):
|
|||
self.assertEqual(re.match('(a)((?!(b)*))*', 'abb').groups(),
|
||||
('a', None, None))
|
||||
|
||||
def test_bug_764548(self):
|
||||
# bug 764548, re.compile() barfs on str/unicode subclasses
|
||||
try:
|
||||
unicode
|
||||
except NameError:
|
||||
return # no problem if we have no unicode
|
||||
class my_unicode(unicode): pass
|
||||
pat = re.compile(my_unicode("abc"))
|
||||
self.assertEqual(pat.match("xyz"), None)
|
||||
|
||||
def test_finditer(self):
|
||||
iter = re.finditer(r":+", "a:b::c:::d")
|
||||
self.assertEqual([item.group(0) for item in iter],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue