[1/9] tests/mockfedabipkgdiff.in: Fix python module loading

Message ID 87o6fopcrl.fsf@seketeli.org
State New
Headers
Series [1/9] tests/mockfedabipkgdiff.in: Fix python module loading |

Commit Message

Dodji Seketeli July 30, 2026, 6:12 p.m. UTC
  Hello,

The master branch was failing to build in Fedora 45 (Rawhide) due to a
python-3 related change in package availability.  Fixed thus.

	* tests/mockfedabipkgdiff.in (load_source): Make this work for
	python 3.

Applied to the master branch.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 tests/mockfedabipkgdiff.in | 35 ++++++++++++-----------------------
 1 file changed, 12 insertions(+), 23 deletions(-)
  

Patch

diff --git a/tests/mockfedabipkgdiff.in b/tests/mockfedabipkgdiff.in
index 863cf7f6..6abbb99e 100644
--- a/tests/mockfedabipkgdiff.in
+++ b/tests/mockfedabipkgdiff.in
@@ -69,30 +69,19 @@  def get_download_dir():
 
 
 def load_source(name, path):
-    # Different version of Python want this be done differently.
-    try:
-        import importlib.machinery
-        loader = importlib.machinery.SourceFileLoader(name, path)
-        import importlib.util
-        spec = importlib.util.spec_from_loader(name, loader)
-        module = importlib.util.module_from_spec(spec)
-        spec.loader.exec_module(module)
-        import sys.modules
-        sys.modules[name] = module
-        return module
-    except:
-        pass
-    try:
-        import importlib.machinery
-        loader = importlib.machinery.SourceFileLoader(name, path)
-        module = loader.load_module()
-        return module
-    except:
-        pass
-    import imp
-    module = imp.load_source(name, path)
-    return module
+    import importlib.util
+    from importlib.machinery import SourceFileLoader
+
+    loader = SourceFileLoader(name, path)
+    spec = importlib.util.spec_from_file_location(name, path, loader=loader)
+    if spec is None:
+        raise ImportError(f"Cannot find module '{name}' at path '{path}'")
+    module = importlib.util.module_from_spec(spec)
 
+    import sys
+    sys.modules[name] = module
+    spec.loader.exec_module(module)
+    return module
 
 # Import the fedabipkgdiff program file from the source directory.
 fedabipkgdiff_mod = load_source('fedabipkgdiff', FEDABIPKGDIFF)