mirror of https://github.com/python/cpython
[3.13] gh-122798: Make tests for warnings in the re module more strict (GH-122799) (#122804)
gh-122798: Make tests for warnings in the re module more strict (GH-122799)
* Test warning messages.
* Test stack level for re.compile() and re.findall().
(cherry picked from commit d2e5be1f39
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
f070398669
commit
60e4c3f710
|
@ -1116,47 +1116,76 @@ class ReTests(unittest.TestCase):
|
|||
|
||||
def test_possible_set_operations(self):
|
||||
s = bytes(range(128)).decode()
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
|
||||
p = re.compile(r'[0-9--1]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('-./0123456789'))
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
|
||||
self.assertEqual(re.findall(r'[0-9--2]', s), list('-./0123456789'))
|
||||
self.assertEqual(w.filename, __file__)
|
||||
|
||||
self.assertEqual(re.findall(r'[--1]', s), list('-./01'))
|
||||
with self.assertWarns(FutureWarning):
|
||||
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
|
||||
p = re.compile(r'[%--1]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list("%&'()*+,-1"))
|
||||
with self.assertWarns(FutureWarning):
|
||||
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set difference ') as w:
|
||||
p = re.compile(r'[%--]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list("%&'()*+,-"))
|
||||
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
|
||||
p = re.compile(r'[0-9&&1]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('&0123456789'))
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
|
||||
self.assertEqual(re.findall(r'[0-8&&1]', s), list('&012345678'))
|
||||
self.assertEqual(w.filename, __file__)
|
||||
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
|
||||
p = re.compile(r'[\d&&1]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('&0123456789'))
|
||||
|
||||
self.assertEqual(re.findall(r'[&&1]', s), list('&1'))
|
||||
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set union ') as w:
|
||||
p = re.compile(r'[0-9||a]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('0123456789a|'))
|
||||
with self.assertWarns(FutureWarning):
|
||||
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set union ') as w:
|
||||
p = re.compile(r'[\d||a]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('0123456789a|'))
|
||||
|
||||
self.assertEqual(re.findall(r'[||1]', s), list('1|'))
|
||||
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set symmetric difference ') as w:
|
||||
p = re.compile(r'[0-9~~1]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('0123456789~'))
|
||||
with self.assertWarns(FutureWarning):
|
||||
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible set symmetric difference ') as w:
|
||||
p = re.compile(r'[\d~~1]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('0123456789~'))
|
||||
|
||||
self.assertEqual(re.findall(r'[~~1]', s), list('1~'))
|
||||
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
|
||||
p = re.compile(r'[[0-9]|]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list('0123456789[]'))
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
|
||||
self.assertEqual(re.findall(r'[[0-8]|]', s), list('012345678[]'))
|
||||
self.assertEqual(w.filename, __file__)
|
||||
|
||||
with self.assertWarns(FutureWarning):
|
||||
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
|
||||
p = re.compile(r'[[:digit:]|]')
|
||||
self.assertEqual(w.filename, __file__)
|
||||
self.assertEqual(p.findall(s), list(':[]dgit'))
|
||||
|
||||
def test_search_coverage(self):
|
||||
|
|
Loading…
Reference in New Issue