File stop-using-the-deprecated-imp-module.patch of Package salt

From e10827dc60e5ce3a9da28176e444185c2a97e285 Mon Sep 17 00:00:00 2001
From: Pedro Algarvio <palgarvio@vmware.com>
Date: Wed, 22 Feb 2023 16:57:55 +0000
Subject: [PATCH] Stop using the deprecated `imp` module

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
(cherry picked from commit 8331264fdb08e9c042e57412444b7de359b9bae2)
---
 tests/unit/test_loader.py     | 51 +++++++++++++++--------------------
 tests/unit/utils/test_path.py | 11 ++++----
 2 files changed, 26 insertions(+), 36 deletions(-)

diff --git a/tests/unit/test_loader.py b/tests/unit/test_loader.py
index 1b616375b30..f160a44a876 100644
--- a/tests/unit/test_loader.py
+++ b/tests/unit/test_loader.py
@@ -8,7 +8,6 @@
 import collections
 import compileall
 import copy
-import imp
 import inspect
 import logging
 import os
@@ -35,15 +34,15 @@ log = logging.getLogger(__name__)
 
 def remove_bytecode(module_path):
     paths = [module_path + "c"]
-    if hasattr(imp, "get_tag"):
-        modname, ext = os.path.splitext(module_path.split(os.sep)[-1])
-        paths.append(
-            os.path.join(
-                os.path.dirname(module_path),
-                "__pycache__",
-                "{}.{}.pyc".format(modname, imp.get_tag()),
-            )
+    cache_tag = sys.implementation.cache_tag
+    modname, ext = os.path.splitext(module_path.split(os.sep)[-1])
+    paths.append(
+        os.path.join(
+            os.path.dirname(module_path),
+            "__pycache__",
+            f"{modname}.{cache_tag}.pyc",
         )
+    )
     for path in paths:
         if os.path.exists(path):
             os.unlink(path)
@@ -84,9 +83,7 @@ class LazyLoaderTest(TestCase):
         # Setup the module
         self.module_dir = tempfile.mkdtemp(dir=RUNTIME_VARS.TMP)
         self.addCleanup(shutil.rmtree, self.module_dir, ignore_errors=True)
-        self.module_file = os.path.join(
-            self.module_dir, "{}.py".format(self.module_name)
-        )
+        self.module_file = os.path.join(self.module_dir, f"{self.module_name}.py")
         with salt.utils.files.fopen(self.module_file, "w") as fh:
             fh.write(salt.utils.stringutils.to_str(loader_template))
             fh.flush()
@@ -163,16 +160,14 @@ class LazyLoaderUtilsTest(TestCase):
     def setUp(self):
         # Setup the module
         self.module_dir = tempfile.mkdtemp(dir=RUNTIME_VARS.TMP)
-        self.module_file = os.path.join(
-            self.module_dir, "{}.py".format(self.module_name)
-        )
+        self.module_file = os.path.join(self.module_dir, f"{self.module_name}.py")
         with salt.utils.files.fopen(self.module_file, "w") as fh:
             fh.write(salt.utils.stringutils.to_str(loader_template_module))
             fh.flush()
             os.fsync(fh.fileno())
 
         self.utils_dir = tempfile.mkdtemp(dir=RUNTIME_VARS.TMP)
-        self.utils_file = os.path.join(self.utils_dir, "{}.py".format(self.utils_name))
+        self.utils_file = os.path.join(self.utils_dir, f"{self.utils_name}.py")
         with salt.utils.files.fopen(self.utils_file, "w") as fh:
             fh.write(salt.utils.stringutils.to_str(loader_template_utils))
             fh.flush()
@@ -516,7 +511,7 @@ class LazyLoaderSingleItem(TestCase):
         Checks that a KeyError is raised when the function key does not contain a '.'
         """
         key = "testing_no_dot"
-        expected = "The key '{}' should contain a '.'".format(key)
+        expected = f"The key '{key}' should contain a '.'"
         with self.assertRaises(KeyError) as err:
             inspect.isfunction(self.loader["testing_no_dot"])
 
@@ -619,7 +614,7 @@ class LazyLoaderReloadingTest(TestCase):
 
     @property
     def module_path(self):
-        return os.path.join(self.tmp_dir, "{}.py".format(self.module_name))
+        return os.path.join(self.tmp_dir, f"{self.module_name}.py")
 
     @pytest.mark.slow_test
     def test_alias(self):
@@ -630,17 +625,15 @@ class LazyLoaderReloadingTest(TestCase):
         self.assertNotIn(self.module_key, self.loader)
 
         self.update_module()
-        self.assertNotIn("{}.test_alias".format(self.module_name), self.loader)
+        self.assertNotIn(f"{self.module_name}.test_alias", self.loader)
         self.assertTrue(
             isinstance(
-                self.loader["{}.working_alias".format(self.module_name)],
+                self.loader[f"{self.module_name}.working_alias"],
                 salt.loader.lazy.LoadedFunc,
             )
         )
         self.assertTrue(
-            inspect.isfunction(
-                self.loader["{}.working_alias".format(self.module_name)].func
-            )
+            inspect.isfunction(self.loader[f"{self.module_name}.working_alias"].func)
         )
 
     @pytest.mark.slow_test
@@ -802,7 +795,7 @@ class LazyLoaderVirtualAliasTest(TestCase):
 
     @property
     def module_path(self):
-        return os.path.join(self.tmp_dir, "{}.py".format(self.module_name))
+        return os.path.join(self.tmp_dir, f"{self.module_name}.py")
 
     @pytest.mark.slow_test
     def test_virtual_alias(self):
@@ -1199,7 +1192,7 @@ class LazyLoaderDeepSubmodReloadingTest(TestCase):
                 "__salt__": self.minion_mods,
             },
         )
-        self.assertIn("{}.top".format(self.module_name), self.loader)
+        self.assertIn(f"{self.module_name}.top", self.loader)
 
     def tearDown(self):
         del self.tmp_dir
@@ -1241,7 +1234,7 @@ class LazyLoaderDeepSubmodReloadingTest(TestCase):
 
     @pytest.mark.slow_test
     def test_basic(self):
-        self.assertIn("{}.top".format(self.module_name), self.loader)
+        self.assertIn(f"{self.module_name}.top", self.loader)
 
     def _verify_libs(self):
         for lib in self.libs:
@@ -1549,9 +1542,7 @@ class LazyLoaderOptimizationOrderTest(TestCase):
         # Setup the module
         self.module_dir = tempfile.mkdtemp(dir=RUNTIME_VARS.TMP)
         self.addCleanup(shutil.rmtree, self.module_dir, ignore_errors=True)
-        self.module_file = os.path.join(
-            self.module_dir, "{}.py".format(self.module_name)
-        )
+        self.module_file = os.path.join(self.module_dir, f"{self.module_name}.py")
 
     def tearDown(self):
         try:
@@ -1585,7 +1576,7 @@ class LazyLoaderOptimizationOrderTest(TestCase):
         return "lazyloadertest.cpython-{}{}{}.pyc".format(
             sys.version_info[0],
             sys.version_info[1],
-            "" if not optimize else ".opt-{}".format(optimize),
+            "" if not optimize else f".opt-{optimize}",
         )
 
     def _write_module_file(self):
diff --git a/tests/unit/utils/test_path.py b/tests/unit/utils/test_path.py
index bebb9ce284a..47a108a2f4e 100644
--- a/tests/unit/utils/test_path.py
+++ b/tests/unit/utils/test_path.py
@@ -4,6 +4,7 @@ import platform
 import posixpath
 import sys
 import tempfile
+import types
 
 import pytest
 
@@ -40,14 +41,14 @@ class PathJoinTestCase(TestCase):
     def test_nix_paths(self):
         for idx, (parts, expected) in enumerate(self.NIX_PATHS):
             path = salt.utils.path.join(*parts)
-            assert "{}: {}".format(idx, path) == "{}: {}".format(idx, expected)
+            assert f"{idx}: {path}" == f"{idx}: {expected}"
 
     @pytest.mark.skip(reason="Skipped until properly mocked")
     @pytest.mark.skip_unless_on_windows
     def test_windows_paths(self):
         for idx, (parts, expected) in enumerate(self.WIN_PATHS):
             path = salt.utils.path.join(*parts)
-            assert "{}: {}".format(idx, path) == "{}: {}".format(idx, expected)
+            assert f"{idx}: {path}" == f"{idx}: {expected}"
 
     @pytest.mark.skip(reason="Skipped until properly mocked")
     @pytest.mark.skip_on_windows
@@ -57,7 +58,7 @@ class PathJoinTestCase(TestCase):
         try:
             for idx, (parts, expected) in enumerate(self.WIN_PATHS):
                 path = salt.utils.path.join(*parts)
-                assert "{}: {}".format(idx, path) == "{}: {}".format(idx, expected)
+                assert f"{idx}: {path}" == f"{idx}: {expected}"
         finally:
             self.__unpatch_path()
 
@@ -79,14 +80,12 @@ class PathJoinTestCase(TestCase):
         assert actual == expected
 
     def __patch_path(self):
-        import imp
-
         modules = list(self.BUILTIN_MODULES[:])
         modules.pop(modules.index("posix"))
         modules.append("nt")
 
         code = """'''Salt unittest loaded NT module'''"""
-        module = imp.new_module("nt")
+        module = types.ModuleType("nt")
         exec(code, module.__dict__)
         sys.modules["nt"] = module
 
-- 
2.49.0

openSUSE Build Service is sponsored by