mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Issue #3756: make re.escape() handle bytes as well as str.
Patch by Andrew McNamara, reviewed and tweaked by myself.
This commit is contained in:
parent
92f8f3e013
commit
698280df7c
3 changed files with 47 additions and 15 deletions
|
@ -416,6 +416,7 @@ class ReTests(unittest.TestCase):
|
|||
|
||||
def test_re_escape(self):
|
||||
p=""
|
||||
self.assertEqual(re.escape(p), p)
|
||||
for i in range(0, 256):
|
||||
p = p + chr(i)
|
||||
self.assertEqual(re.match(re.escape(chr(i)), chr(i)) is not None,
|
||||
|
@ -426,6 +427,19 @@ class ReTests(unittest.TestCase):
|
|||
self.assertEqual(pat.match(p) is not None, True)
|
||||
self.assertEqual(pat.match(p).span(), (0,256))
|
||||
|
||||
def test_re_escape_byte(self):
|
||||
p=b""
|
||||
self.assertEqual(re.escape(p), p)
|
||||
for i in range(0, 256):
|
||||
b = bytes([i])
|
||||
p += b
|
||||
self.assertEqual(re.match(re.escape(b), b) is not None, True)
|
||||
self.assertEqual(re.match(re.escape(b), b).span(), (0,1))
|
||||
|
||||
pat=re.compile(re.escape(p))
|
||||
self.assertEqual(pat.match(p) is not None, True)
|
||||
self.assertEqual(pat.match(p).span(), (0,256))
|
||||
|
||||
def pickle_test(self, pickle):
|
||||
oldpat = re.compile('a(?:b|(c|e){1,2}?|d)+?(.)')
|
||||
s = pickle.dumps(oldpat)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue