]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-116608: Apply style and compatibility changes from importlib_metadata. (#123028)
authorJason R. Coombs <jaraco@jaraco.com>
Thu, 15 Aug 2024 19:32:05 +0000 (15:32 -0400)
committerGitHub <noreply@github.com>
Thu, 15 Aug 2024 19:32:05 +0000 (15:32 -0400)
Lib/importlib/resources/_functional.py
Lib/test/test_importlib/resources/test_functional.py

index 9e3ea1547d486a55588a83452c9e982d17060096..f59416f2dd627d560b3e393775cc5be14c578370 100644 (file)
@@ -57,11 +57,7 @@ def contents(anchor, *path_names):
         DeprecationWarning,
         stacklevel=1,
     )
-    return (
-        resource.name
-        for resource
-        in _get_resource(anchor, path_names).iterdir()
-    )
+    return (resource.name for resource in _get_resource(anchor, path_names).iterdir())
 
 
 def _get_encoding_arg(path_names, encoding):
index d60a2bedd89798e65eb91f30d70ddbf24e82d55f..f65ffe646cf0d4d82bd1a23ea51440f87ad88c06 100644 (file)
@@ -1,9 +1,9 @@
 import unittest
 import os
 
-from test.support.warnings_helper import ignore_warnings, check_warnings
+from test.support import warnings_helper
 
-import importlib.resources as resources
+from importlib import resources
 
 # Since the functional API forwards to Traversable, we only test
 # filesystem resources here -- not zip files, namespace packages etc.
@@ -22,8 +22,7 @@ class ModuleAnchorMixin:
 
 class FunctionalAPIBase:
     def _gen_resourcetxt_path_parts(self):
-        """Yield various names of a text file in anchor02, each in a subTest
-        """
+        """Yield various names of a text file in anchor02, each in a subTest"""
         for path_parts in (
             ('subdirectory', 'subsubdir', 'resource.txt'),
             ('subdirectory/subsubdir/resource.txt',),
@@ -36,7 +35,7 @@ class FunctionalAPIBase:
         """Assert that `string` ends with `suffix`.
 
         Used to ignore an architecture-specific UTF-16 byte-order mark."""
-        self.assertEqual(string[-len(suffix):], suffix)
+        self.assertEqual(string[-len(suffix) :], suffix)
 
     def test_read_text(self):
         self.assertEqual(
@@ -45,7 +44,10 @@ class FunctionalAPIBase:
         )
         self.assertEqual(
             resources.read_text(
-                self.anchor02, 'subdirectory', 'subsubdir', 'resource.txt',
+                self.anchor02,
+                'subdirectory',
+                'subsubdir',
+                'resource.txt',
                 encoding='utf-8',
             ),
             'a resource',
@@ -53,7 +55,9 @@ class FunctionalAPIBase:
         for path_parts in self._gen_resourcetxt_path_parts():
             self.assertEqual(
                 resources.read_text(
-                    self.anchor02, *path_parts, encoding='utf-8',
+                    self.anchor02,
+                    *path_parts,
+                    encoding='utf-8',
                 ),
                 'a resource',
             )
@@ -67,13 +71,16 @@ class FunctionalAPIBase:
             resources.read_text(self.anchor01, 'utf-16.file')
         self.assertEqual(
             resources.read_text(
-                self.anchor01, 'binary.file', encoding='latin1',
+                self.anchor01,
+                'binary.file',
+                encoding='latin1',
             ),
             '\x00\x01\x02\x03',
         )
         self.assertEndsWith(  # ignore the BOM
             resources.read_text(
-                self.anchor01, 'utf-16.file',
+                self.anchor01,
+                'utf-16.file',
                 errors='backslashreplace',
             ),
             'Hello, UTF-16 world!\n'.encode('utf-16-le').decode(
@@ -97,7 +104,8 @@ class FunctionalAPIBase:
             self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
         for path_parts in self._gen_resourcetxt_path_parts():
             with resources.open_text(
-                self.anchor02, *path_parts,
+                self.anchor02,
+                *path_parts,
                 encoding='utf-8',
             ) as f:
                 self.assertEqual(f.read(), 'a resource')
@@ -111,11 +119,14 @@ class FunctionalAPIBase:
             with self.assertRaises(UnicodeDecodeError):
                 f.read()
         with resources.open_text(
-            self.anchor01, 'binary.file', encoding='latin1',
+            self.anchor01,
+            'binary.file',
+            encoding='latin1',
         ) as f:
             self.assertEqual(f.read(), '\x00\x01\x02\x03')
         with resources.open_text(
-            self.anchor01, 'utf-16.file',
+            self.anchor01,
+            'utf-16.file',
             errors='backslashreplace',
         ) as f:
             self.assertEndsWith(  # ignore the BOM
@@ -130,16 +141,17 @@ class FunctionalAPIBase:
             self.assertEqual(f.read(), b'Hello, UTF-8 world!\n')
         for path_parts in self._gen_resourcetxt_path_parts():
             with resources.open_binary(
-                self.anchor02, *path_parts,
+                self.anchor02,
+                *path_parts,
             ) as f:
                 self.assertEqual(f.read(), b'a resource')
 
     def test_path(self):
         with resources.path(self.anchor01, 'utf-8.file') as path:
-            with open(str(path)) as f:
+            with open(str(path), encoding='utf-8') as f:
                 self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
         with resources.path(self.anchor01) as path:
-            with open(os.path.join(path, 'utf-8.file')) as f:
+            with open(os.path.join(path, 'utf-8.file'), encoding='utf-8') as f:
                 self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
 
     def test_is_resource(self):
@@ -152,32 +164,32 @@ class FunctionalAPIBase:
             self.assertTrue(is_resource(self.anchor02, *path_parts))
 
     def test_contents(self):
-        is_resource = resources.is_resource
-        with check_warnings((".*contents.*", DeprecationWarning)):
+        with warnings_helper.check_warnings((".*contents.*", DeprecationWarning)):
             c = resources.contents(self.anchor01)
         self.assertGreaterEqual(
             set(c),
             {'utf-8.file', 'utf-16.file', 'binary.file', 'subdirectory'},
         )
-        with (
-            self.assertRaises(OSError),
-            check_warnings((".*contents.*", DeprecationWarning)),
-        ):
+        with self.assertRaises(OSError), warnings_helper.check_warnings((
+            ".*contents.*",
+            DeprecationWarning,
+        )):
             list(resources.contents(self.anchor01, 'utf-8.file'))
+
         for path_parts in self._gen_resourcetxt_path_parts():
-            with (
-                self.assertRaises(OSError),
-                check_warnings((".*contents.*", DeprecationWarning)),
-            ):
+            with self.assertRaises(OSError), warnings_helper.check_warnings((
+                ".*contents.*",
+                DeprecationWarning,
+            )):
                 list(resources.contents(self.anchor01, *path_parts))
-        with check_warnings((".*contents.*", DeprecationWarning)):
+        with warnings_helper.check_warnings((".*contents.*", DeprecationWarning)):
             c = resources.contents(self.anchor01, 'subdirectory')
         self.assertGreaterEqual(
             set(c),
             {'binary.file'},
         )
 
-    @ignore_warnings(category=DeprecationWarning)
+    @warnings_helper.ignore_warnings(category=DeprecationWarning)
     def test_common_errors(self):
         for func in (
             resources.read_text,
@@ -208,18 +220,24 @@ class FunctionalAPIBase:
                 # Multiple path arguments need explicit encoding argument.
                 with self.assertRaises(TypeError):
                     func(
-                        self.anchor02, 'subdirectory',
-                        'subsubdir', 'resource.txt',
+                        self.anchor02,
+                        'subdirectory',
+                        'subsubdir',
+                        'resource.txt',
                     )
 
 
 class FunctionalAPITest_StringAnchor(
-    unittest.TestCase, FunctionalAPIBase, StringAnchorMixin,
+    unittest.TestCase,
+    FunctionalAPIBase,
+    StringAnchorMixin,
 ):
     pass
 
 
 class FunctionalAPITest_ModuleAnchor(
-    unittest.TestCase, FunctionalAPIBase, ModuleAnchorMixin,
+    unittest.TestCase,
+    FunctionalAPIBase,
+    ModuleAnchorMixin,
 ):
     pass