From bd07d1adb90a6010e7d03839335e3bafc2b6ae81 Mon Sep 17 00:00:00 2001 From: Simon Rose <simon.rose@ess.eu> Date: Mon, 17 Jul 2023 09:37:42 +0200 Subject: [PATCH] E3-1243: Enforce strict conditions on module existence Originally we simply warned if `FOO_DEP_VERSION` did not refer to a real module; this was necessary as some modules had legacy (non-e3) dependencies defined this way. However, this has the unfortunate side-effect that missing _modules_ would "pass" the build, with a failure only happening if some version of the module existed (but not the correct one). --- require-ess/tools/driver.makefile | 2 +- tests/test_build.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/require-ess/tools/driver.makefile b/require-ess/tools/driver.makefile index a501fc09..b734aaf1 100644 --- a/require-ess/tools/driver.makefile +++ b/require-ess/tools/driver.makefile @@ -155,7 +155,7 @@ define fetch_module_versions MODULES += $$(lm) REQ += $$(lm) else - $$(warning Invalid dependency "$1_DEP_VERSION$2"; pruning) + $$(error Dependent module "$$(lm)" (from "$1_DEP_VERSION$2") not installed) endif endef diff --git a/tests/test_build.py b/tests/test_build.py index e6505d03..bb07bf06 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -86,11 +86,16 @@ def test_missing_source_file(wrapper: Wrapper): def test_missing_requirement(wrapper: Wrapper): - wrapper.add_var_to_config_module("FOO_DEP_VERSION", "bar") + missing_module = "FOO" + wrapper.add_var_to_config_module(f"{missing_module}_DEP_VERSION", "bar") rc, _, errs = wrapper.run_make("build") - assert rc == 0 - assert 'Invalid dependency "FOO_DEP_VERSION"; pruning' in errs + assert rc != 0 + print(errs) + assert ( + f'Dependent module "{missing_module.lower()}" (from "{missing_module}_DEP_VERSION") not installed' + in errs + ) def test_missing_dependent_version(wrappers): -- GitLab