Browse Source

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 8cf07d3db3)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
pull/27815/head
Miss Islington (bot) 4 years ago
committed by GitHub
parent
commit
d1c0e4413d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      Lib/test/support/__init__.py

9
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:

Loading…
Cancel
Save