summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2024-08-07 19:43:49 (GMT)
committerGitHub <noreply@github.com>2024-08-07 19:43:49 (GMT)
commitd2e5be1f39bc3d48c7bc8c146c4bcadee266672a (patch)
tree81f247831a6782e03b45258303918728861af4ec /Lib/test
parent3e753c689a802d2e6d909cce3e22173977b2edbf (diff)
downloadcpython-d2e5be1f39bc3d48c7bc8c146c4bcadee266672a.zip
cpython-d2e5be1f39bc3d48c7bc8c146c4bcadee266672a.tar.gz
cpython-d2e5be1f39bc3d48c7bc8c146c4bcadee266672a.tar.bz2
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().
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_re.py51
1 files changed, 40 insertions, 11 deletions
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index a93c2ae..c1d4653 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -1115,47 +1115,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):