Skip to content

Commit

Permalink
bpo-44852: Support filtering over warnings without a set message (pyt…
Browse files Browse the repository at this point in the history
…honGH-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.
  • Loading branch information
ambv committed Aug 18, 2021
1 parent 3240bc6 commit 8cf07d3
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions Lib/test/support/__init__.py
Expand Up @@ -2070,13 +2070,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:
Expand Down

0 comments on commit 8cf07d3

Please sign in to comment.