From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sun, 1 Aug 2021 03:01:38 +0000 (-0700) Subject: bpo-44784: Apply changes from importlib_metadata 4.6.3 (GH-27508) (#27510) X-Git-Tag: v3.10.0rc1~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=21d5897982698a461215203ab51f56ad05648001;p=thirdparty%2FPython%2Fcpython.git 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 1cf8424a62db38a041d421a46618e025bbb87f89) Co-authored-by: Jason R. Coombs Co-authored-by: Jason R. Coombs --- diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index 2bfc44b18eed..dc9c234d15b7 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -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 index 000000000000..6ad10ef3f598 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst @@ -0,0 +1,2 @@ +In importlib.metadata tests, override warnings behavior under expected +DeprecationWarnings (importlib_metadata 4.6.3).