diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index c787881..24dd010 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -38,3 +38,7 @@ jobs: - name: Test with pytest run: | pytest + - name: Run test + run: | + python -m pip install . + fedcloud --version diff --git a/fedcloudclient/logger.py b/fedcloudclient/logger.py index b44067f..1535d70 100644 --- a/fedcloudclient/logger.py +++ b/fedcloudclient/logger.py @@ -30,8 +30,14 @@ def init_logger(): def log_and_raise(error_msg: str, exception): """ Log error and raise exception + + :param error_msg: error message to log (and to use as exception message) + :param exception: either an exception class, which is instantiated with + error_msg, or an exception instance, which is raised as is """ LOG.error(error_msg) + if isinstance(exception, BaseException): + raise exception raise exception(error_msg) diff --git a/fedcloudclient/openstack.py b/fedcloudclient/openstack.py index e4462e0..d072ddf 100644 --- a/fedcloudclient/openstack.py +++ b/fedcloudclient/openstack.py @@ -109,7 +109,7 @@ def fedcloud_openstack_full( (__OPENSTACK_CLIENT,) + openstack_command + options, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - env=my_env, check=True + env=my_env ) error_code = completed.returncode diff --git a/fedcloudclient/sites.py b/fedcloudclient/sites.py index 8c407c4..a2cfe32 100644 --- a/fedcloudclient/sites.py +++ b/fedcloudclient/sites.py @@ -18,7 +18,7 @@ from urllib.request import Request, urlopen import click -import pkg_resources +from importlib.resources import files import yaml from jsonschema import validate @@ -54,8 +54,9 @@ def read_site_schema(): :return: JSON object from schema.json """ - file = pkg_resources.resource_stream("fedcloudclient", "schema.json") - schema = json.load(file) + # Open the bundled file inside the fedcloudclient package as a binary stream + with files("fedcloudclient").joinpath("schema.json").open("rb") as file: + schema = json.load(file) return schema