]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-44784: Apply changes from importlib_metadata 4.6.3 (GH-27508) (#27510)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 1 Aug 2021 03:01:38 +0000 (20:01 -0700)
committerGitHub <noreply@github.com>
Sun, 1 Aug 2021 03:01:38 +0000 (23:01 -0400)
Addressing issues with tests under error on warnings.

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

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Lib/test/test_importlib/test_metadata_api.py
Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst [new file with mode: 0644]

index 2bfc44b18eedb4dcea3705f9efc2a3931412feab..dc9c234d15b7858ae4d9b300d721c11d582e58a2 100644 (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', ()) == ()
diff --git a/Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst b/Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst
new file mode 100644 (file)
index 0000000..6ad10ef
--- /dev/null
@@ -0,0 +1,2 @@
+In importlib.metadata tests, override warnings behavior under expected
+DeprecationWarnings (importlib_metadata 4.6.3).