diff --git a/Makefile b/Makefile index 55f4cd1b..358e456b 100644 --- a/Makefile +++ b/Makefile @@ -94,3 +94,5 @@ tx-en: ## rebuild en locale strings and push to master (req: GH_TOKEN) test/%: ## run tests against a stack (only common tests or common tests + specific tests) @if [ ! -d "$(notdir $@)/test" ]; then TEST_IMAGE="$(OWNER)/$(notdir $@)" pytest -m "not info" test; \ else TEST_IMAGE="$(OWNER)/$(notdir $@)" pytest -m "not info" test $(notdir $@)/test; fi + +test-all: $(foreach I,$(ALL_IMAGES),test/$(I)) ## test all stacks \ No newline at end of file diff --git a/test/helpers.py b/test/helpers.py index 42df3ed7..b3600a41 100644 --- a/test/helpers.py +++ b/test/helpers.py @@ -88,10 +88,21 @@ class CondaPackageHelper: def _packages_from_json(env_export): """Extract packages and versions from the lines returned by the list of specifications""" dependencies = json.loads(env_export).get("dependencies") - # FIXME: # shall be able to parse conda-forge::blas[build=openblas] without considering openblas as the version - packages_list = map(lambda x: x.split("=", 1), dependencies) - # TODO: could be improved - return {package[0]: set(package[1:]) for package in packages_list} + packages_dict = dict() + for split in map(lambda x: x.split("=", 1), dependencies): + # default values + package = split[0] + version = set() + # cheking if it's a proper version by testing if the first char is a digit + if len(split) > 1: + if split[1][0].isdigit(): + # package + version case + version = set(split[1:]) + else: + # The split was incorrect and the package shall not be splitted + package = f"{split[0]}={split[1]}" + packages_dict[package] = version + return packages_dict def available_packages(self): """Return the available packages""" diff --git a/test/test_packages.py b/test/test_packages.py index 2bf085ba..50532e10 100644 --- a/test/test_packages.py +++ b/test/test_packages.py @@ -63,8 +63,7 @@ EXCLUDED_PACKAGES = [ "tini", "python", "hdf5", - # FIXME: shall be parsed as conda-forge::blas[build=openblas] - "conda-forge::blas[build", + "conda-forge::blas[build=openblas]", "protobuf", "r-irkernel", "unixodbc",