Skip to content

Commit 60e4c3f

Browse files
[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 d2e5be1) Co-authored-by: Serhiy Storchaka <[email protected]>
1 parent f070398 commit 60e4c3f

File tree

1 file changed

+40
-11
lines changed

1 file changed

+40
-11
lines changed

Lib/test/test_re.py

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,47 +1116,76 @@ def test_not_literal(self):
11161116

11171117
def test_possible_set_operations(self):
11181118
s = bytes(range(128)).decode()
1119-
with self.assertWarns(FutureWarning):
1119+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
11201120
p = re.compile(r'[0-9--1]')
1121+
self.assertEqual(w.filename, __file__)
11211122
self.assertEqual(p.findall(s), list('-./0123456789'))
1123+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
1124+
self.assertEqual(re.findall(r'[0-9--2]', s), list('-./0123456789'))
1125+
self.assertEqual(w.filename, __file__)
1126+
11221127
self.assertEqual(re.findall(r'[--1]', s), list('-./01'))
1123-
with self.assertWarns(FutureWarning):
1128+
1129+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
11241130
p = re.compile(r'[%--1]')
1131+
self.assertEqual(w.filename, __file__)
11251132
self.assertEqual(p.findall(s), list("%&'()*+,-1"))
1126-
with self.assertWarns(FutureWarning):
1133+
1134+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference ') as w:
11271135
p = re.compile(r'[%--]')
1136+
self.assertEqual(w.filename, __file__)
11281137
self.assertEqual(p.findall(s), list("%&'()*+,-"))
11291138

1130-
with self.assertWarns(FutureWarning):
1139+
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
11311140
p = re.compile(r'[0-9&&1]')
1141+
self.assertEqual(w.filename, __file__)
11321142
self.assertEqual(p.findall(s), list('&0123456789'))
1133-
with self.assertWarns(FutureWarning):
1143+
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
1144+
self.assertEqual(re.findall(r'[0-8&&1]', s), list('&012345678'))
1145+
self.assertEqual(w.filename, __file__)
1146+
1147+
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
11341148
p = re.compile(r'[\d&&1]')
1149+
self.assertEqual(w.filename, __file__)
11351150
self.assertEqual(p.findall(s), list('&0123456789'))
1151+
11361152
self.assertEqual(re.findall(r'[&&1]', s), list('&1'))
11371153

1138-
with self.assertWarns(FutureWarning):
1154+
with self.assertWarnsRegex(FutureWarning, 'Possible set union ') as w:
11391155
p = re.compile(r'[0-9||a]')
1156+
self.assertEqual(w.filename, __file__)
11401157
self.assertEqual(p.findall(s), list('0123456789a|'))
1141-
with self.assertWarns(FutureWarning):
1158+
1159+
with self.assertWarnsRegex(FutureWarning, 'Possible set union ') as w:
11421160
p = re.compile(r'[\d||a]')
1161+
self.assertEqual(w.filename, __file__)
11431162
self.assertEqual(p.findall(s), list('0123456789a|'))
1163+
11441164
self.assertEqual(re.findall(r'[||1]', s), list('1|'))
11451165

1146-
with self.assertWarns(FutureWarning):
1166+
with self.assertWarnsRegex(FutureWarning, 'Possible set symmetric difference ') as w:
11471167
p = re.compile(r'[0-9~~1]')
1168+
self.assertEqual(w.filename, __file__)
11481169
self.assertEqual(p.findall(s), list('0123456789~'))
1149-
with self.assertWarns(FutureWarning):
1170+
1171+
with self.assertWarnsRegex(FutureWarning, 'Possible set symmetric difference ') as w:
11501172
p = re.compile(r'[\d~~1]')
1173+
self.assertEqual(w.filename, __file__)
11511174
self.assertEqual(p.findall(s), list('0123456789~'))
1175+
11521176
self.assertEqual(re.findall(r'[~~1]', s), list('1~'))
11531177

1154-
with self.assertWarns(FutureWarning):
1178+
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
11551179
p = re.compile(r'[[0-9]|]')
1180+
self.assertEqual(w.filename, __file__)
11561181
self.assertEqual(p.findall(s), list('0123456789[]'))
1182+
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
1183+
self.assertEqual(re.findall(r'[[0-8]|]', s), list('012345678[]'))
1184+
self.assertEqual(w.filename, __file__)
11571185

1158-
with self.assertWarns(FutureWarning):
1186+
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
11591187
p = re.compile(r'[[:digit:]|]')
1188+
self.assertEqual(w.filename, __file__)
11601189
self.assertEqual(p.findall(s), list(':[]dgit'))
11611190

11621191
def test_search_coverage(self):

0 commit comments

Comments
 (0)