bpo-44784: Apply changes from importlib_metadata 4.6.3 (GH-27508) (#27510)

Addressing issues with tests under error on warnings.

Automerge-Triggered-By: GH:jaraco
(cherry picked from commit 1cf8424a62)

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
This commit is contained in:
Miss Islington (bot) 2021-07-31 20:01:38 -07:00 committed by GitHub
parent 35035bc35a
commit 21d5897982
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 6 deletions

View file

@ -3,6 +3,7 @@ import textwrap
import unittest
import warnings
import importlib
import contextlib
from . import fixtures
from importlib.metadata import (
@ -17,6 +18,13 @@ from importlib.metadata import (
)
@contextlib.contextmanager
def suppress_known_deprecation():
with warnings.catch_warnings(record=True) as ctx:
warnings.simplefilter('default')
yield ctx
class APITests(
fixtures.EggInfoPkg,
fixtures.DistInfoPkg,
@ -118,8 +126,7 @@ class APITests(
# Prior versions of entry_points() returned simple lists and
# allowed casting those lists into maps by name using ``dict()``.
# Capture this now deprecated use-case.
with warnings.catch_warnings(record=True) as caught:
warnings.filterwarnings("default", category=DeprecationWarning)
with suppress_known_deprecation() as caught:
eps = dict(entry_points(group='entries'))
assert 'main' in eps
@ -138,8 +145,7 @@ class APITests(
See python/importlib_metadata#300 and bpo-44246.
"""
eps = distribution('distinfo-pkg').entry_points
with warnings.catch_warnings(record=True) as caught:
warnings.filterwarnings("default", category=DeprecationWarning)
with suppress_known_deprecation() as caught:
eps[0]
# check warning
@ -151,7 +157,7 @@ class APITests(
# Prior versions of entry_points() returned a dict. Ensure
# that callers using '.__getitem__()' are supported but warned to
# migrate.
with warnings.catch_warnings(record=True):
with suppress_known_deprecation():
entry_points()['entries'] == entry_points(group='entries')
with self.assertRaises(KeyError):
@ -161,7 +167,7 @@ class APITests(
# Prior versions of entry_points() returned a dict. Ensure
# that callers using '.get()' are supported but warned to
# migrate.
with warnings.catch_warnings(record=True):
with suppress_known_deprecation():
entry_points().get('missing', 'default') == 'default'
entry_points().get('entries', 'default') == entry_points()['entries']
entry_points().get('missing', ()) == ()