Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d2e5be1

Browse files
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().
1 parent 3e753c6 commit d2e5be1

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
@@ -1115,47 +1115,76 @@ def test_not_literal(self):
11151115

11161116
def test_possible_set_operations(self):
11171117
s = bytes(range(128)).decode()
1118-
with self.assertWarns(FutureWarning):
1118+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
11191119
p = re.compile(r'[0-9--1]')
1120+
self.assertEqual(w.filename, __file__)
11201121
self.assertEqual(p.findall(s), list('-./0123456789'))
1122+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
1123+
self.assertEqual(re.findall(r'[0-9--2]', s), list('-./0123456789'))
1124+
self.assertEqual(w.filename, __file__)
1125+
11211126
self.assertEqual(re.findall(r'[--1]', s), list('-./01'))
1122-
with self.assertWarns(FutureWarning):
1127+
1128+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference') as w:
11231129
p = re.compile(r'[%--1]')
1130+
self.assertEqual(w.filename, __file__)
11241131
self.assertEqual(p.findall(s), list("%&'()*+,-1"))
1125-
with self.assertWarns(FutureWarning):
1132+
1133+
with self.assertWarnsRegex(FutureWarning, 'Possible set difference ') as w:
11261134
p = re.compile(r'[%--]')
1135+
self.assertEqual(w.filename, __file__)
11271136
self.assertEqual(p.findall(s), list("%&'()*+,-"))
11281137

1129-
with self.assertWarns(FutureWarning):
1138+
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
11301139
p = re.compile(r'[0-9&&1]')
1140+
self.assertEqual(w.filename, __file__)
11311141
self.assertEqual(p.findall(s), list('&0123456789'))
1132-
with self.assertWarns(FutureWarning):
1142+
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
1143+
self.assertEqual(re.findall(r'[0-8&&1]', s), list('&012345678'))
1144+
self.assertEqual(w.filename, __file__)
1145+
1146+
with self.assertWarnsRegex(FutureWarning, 'Possible set intersection ') as w:
11331147
p = re.compile(r'[\d&&1]')
1148+
self.assertEqual(w.filename, __file__)
11341149
self.assertEqual(p.findall(s), list('&0123456789'))
1150+
11351151
self.assertEqual(re.findall(r'[&&1]', s), list('&1'))
11361152

1137-
with self.assertWarns(FutureWarning):
1153+
with self.assertWarnsRegex(FutureWarning, 'Possible set union ') as w:
11381154
p = re.compile(r'[0-9||a]')
1155+
self.assertEqual(w.filename, __file__)
11391156
self.assertEqual(p.findall(s), list('0123456789a|'))
1140-
with self.assertWarns(FutureWarning):
1157+
1158+
with self.assertWarnsRegex(FutureWarning, 'Possible set union ') as w:
11411159
p = re.compile(r'[\d||a]')
1160+
self.assertEqual(w.filename, __file__)
11421161
self.assertEqual(p.findall(s), list('0123456789a|'))
1162+
11431163
self.assertEqual(re.findall(r'[||1]', s), list('1|'))
11441164

1145-
with self.assertWarns(FutureWarning):
1165+
with self.assertWarnsRegex(FutureWarning, 'Possible set symmetric difference ') as w:
11461166
p = re.compile(r'[0-9~~1]')
1167+
self.assertEqual(w.filename, __file__)
11471168
self.assertEqual(p.findall(s), list('0123456789~'))
1148-
with self.assertWarns(FutureWarning):
1169+
1170+
with self.assertWarnsRegex(FutureWarning, 'Possible set symmetric difference ') as w:
11491171
p = re.compile(r'[\d~~1]')
1172+
self.assertEqual(w.filename, __file__)
11501173
self.assertEqual(p.findall(s), list('0123456789~'))
1174+
11511175
self.assertEqual(re.findall(r'[~~1]', s), list('1~'))
11521176

1153-
with self.assertWarns(FutureWarning):
1177+
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
11541178
p = re.compile(r'[[0-9]|]')
1179+
self.assertEqual(w.filename, __file__)
11551180
self.assertEqual(p.findall(s), list('0123456789[]'))
1181+
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
1182+
self.assertEqual(re.findall(r'[[0-8]|]', s), list('012345678[]'))
1183+
self.assertEqual(w.filename, __file__)
11561184

1157-
with self.assertWarns(FutureWarning):
1185+
with self.assertWarnsRegex(FutureWarning, 'Possible nested set ') as w:
11581186
p = re.compile(r'[[:digit:]|]')
1187+
self.assertEqual(w.filename, __file__)
11591188
self.assertEqual(p.findall(s), list(':[]dgit'))
11601189

11611190
def test_search_coverage(self):

0 commit comments

Comments
 (0)