summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-08-18 12:10:10 (GMT)
committerGitHub <noreply@github.com>2021-08-18 12:10:10 (GMT)
commitd1c0e4413dd544270df1f5b8a145fd4370cb759b (patch)
treebc246c90286ab64bf47a2075ff5c658e2a2533b8
parentbbb10761b64095425f7f8dcb3bc1f0d8bdee528a (diff)
downloadcpython-d1c0e4413dd544270df1f5b8a145fd4370cb759b.zip
cpython-d1c0e4413dd544270df1f5b8a145fd4370cb759b.tar.gz
cpython-d1c0e4413dd544270df1f5b8a145fd4370cb759b.tar.bz2
bpo-44852: Support filtering over warnings without a set message (GH-27793)
Additional improvements: - messages which were compiled regular expressions aren't unpacked back into strings for unmatched warnings; - removed unnecessary "if tokens:" check (there's one before the for loop); - took `endswith` calculation out of the for loop. (cherry picked from commit 8cf07d3db3eed02b43350a5f9dbf68f1c839ea82) Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
-rw-r--r--Lib/test/support/__init__.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 227ce47..abc2a18 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -2059,13 +2059,14 @@ def clear_ignored_deprecations(*tokens: object) -> None:
raise ValueError("Provide token or tokens returned by ignore_deprecations_from")
new_filters = []
+ endswith = tuple(rf"(?#support{id(token)})" for token in tokens)
for action, message, category, module, lineno in warnings.filters:
if action == "ignore" and category is DeprecationWarning:
if isinstance(message, re.Pattern):
- message = message.pattern
- if tokens:
- endswith = tuple(rf"(?#support{id(token)})" for token in tokens)
- if message.endswith(endswith):
+ msg = message.pattern
+ else:
+ msg = message or ""
+ if msg.endswith(endswith):
continue
new_filters.append((action, message, category, module, lineno))
if warnings.filters != new_filters: