obs-service-set_version/0001-Remove-usage-of-deprecated-imp-module-with-importlib.patch
2023-10-18 15:20:40 +08:00

135 lines
3.5 KiB
Diff

From f11e35645e68888284e0a05e43baf6c4b56ceb4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dcermak@suse.com>
Date: Fri, 1 Sep 2023 11:56:09 +0200
Subject: [PATCH] Remove usage of deprecated imp module with importlib
---
tests/loader.py | 16 ++++++++++++++++
tests/test_base.py | 7 +++----
tests/test_package_type_detection.py | 6 ++----
tests/test_python_pip2rpm.py | 5 ++---
tests/test_rpmspec.py | 4 ++--
5 files changed, 25 insertions(+), 13 deletions(-)
create mode 100644 tests/loader.py
diff --git a/tests/loader.py b/tests/loader.py
new file mode 100644
index 0000000..1087b26
--- /dev/null
+++ b/tests/loader.py
@@ -0,0 +1,16 @@
+import importlib.machinery
+import importlib.util
+from pathlib import Path
+
+
+def import_set_version():
+ """Imports the set_version script as a python module and returns it."""
+ loader = importlib.machinery.SourceFileLoader(
+ 'set_version',
+ str(Path(__file__).parent.joinpath("..", "set_version"))
+ )
+ spec = importlib.util.spec_from_loader('set_version', loader)
+ sv = importlib.util.module_from_spec(spec)
+ loader.exec_module(sv)
+
+ return sv
diff --git a/tests/test_base.py b/tests/test_base.py
index c894bd4..0ebc1bd 100644
--- a/tests/test_base.py
+++ b/tests/test_base.py
@@ -15,7 +15,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,USA.
-import imp
import os
import re
import shutil
@@ -25,15 +24,15 @@
import tempfile
import unittest
-
from ddt import data, ddt, unpack
+from loader import import_set_version
+
DEBUG = False
if os.environ.get('DEBUG_SET_VERSION') == "1":
DEBUG = True
-# NOTE(toabctl): Hack to import non-module file for testing
-sv = imp.load_source("set_version", "set_version")
+sv = import_set_version()
SET_VERSION_EXECUTABLE = os.path.abspath(
diff --git a/tests/test_package_type_detection.py b/tests/test_package_type_detection.py
index 231792c..82b768b 100644
--- a/tests/test_package_type_detection.py
+++ b/tests/test_package_type_detection.py
@@ -15,15 +15,13 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,USA.
-import imp
-
from ddt import data, ddt, unpack
from test_base import SetVersionBaseTest
+from tests.loader import import_set_version
-# NOTE(toabctl): Hack to import non-module file for testing
-sv = imp.load_source("set_version", "set_version")
+sv = import_set_version()
@ddt
diff --git a/tests/test_python_pip2rpm.py b/tests/test_python_pip2rpm.py
index 270028a..db53ce8 100644
--- a/tests/test_python_pip2rpm.py
+++ b/tests/test_python_pip2rpm.py
@@ -15,7 +15,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,USA.
-import imp
import os
import subprocess
import unittest
@@ -25,10 +24,10 @@
from packaging.version import parse
from test_base import SetVersionBaseTest
+from tests.loader import import_set_version
-# NOTE(toabctl): Hack to import non-module file for testing
-sv = imp.load_source("set_version", "set_version")
+sv = import_set_version()
def _has_zypper():
diff --git a/tests/test_rpmspec.py b/tests/test_rpmspec.py
index 6c76307..7f1e3a1 100644
--- a/tests/test_rpmspec.py
+++ b/tests/test_rpmspec.py
@@ -16,13 +16,13 @@
import os
-import imp
import shutil
from ddt import data, ddt, file_data, unpack
from test_base import SetVersionBaseTest
+from tests.loader import import_set_version
-sv = imp.load_source("set_version", "set_version")
+sv = import_set_version()
@ddt