[1/9] tests/mockfedabipkgdiff.in: Fix python module loading
Commit Message
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(-)
@@ -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)