From 1780206d9040fa27f9c83d3d953262a5349879a3 Mon Sep 17 00:00:00 2001
From: Simon Rose <simon.rose@ess.eu>
Date: Fri, 19 Aug 2022 16:28:12 +0200
Subject: [PATCH] Added test to catch missing dependent versions

---
 tests/test_build.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/tests/test_build.py b/tests/test_build.py
index 580ceff8..a0f8b155 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -10,6 +10,9 @@ MODULE_VERSION = "0.0.0+0"
 MODULE_VERSION_NO_BUILD = "0.0.0"
 
 RE_MISSING_FILE = "No rule to make target [`']{filename}'"
+RE_MISSING_VERSION = (
+    "REQUIRED module [`']{module}' version [`']{version}' does not exist."
+)
 
 
 def create_patch_file(path, desc):
@@ -97,6 +100,27 @@ def test_missing_requirement(wrapper):
     assert 'Invalid dependency "FOO_DEP_VERSION"; pruning' in errs
 
 
+def test_missing_dependent_version(wrappers):
+    wrapper_dep = wrappers.get()
+    wrapper_main = wrappers.get()
+
+    cell_path = wrapper_main.path / "cellMods"
+
+    rc, *_ = wrapper_dep.run_make("cellinstall", cell_path=cell_path)
+    assert rc == 0
+
+    missing_version = "not_a_real_version"
+    wrapper_main.add_var_to_config_module(
+        f"{wrapper_dep.name}_DEP_VERSION", missing_version
+    )
+    rc, _, errs = wrapper_main.run_make("cellbuild")
+    assert rc == 2
+    assert re.search(
+        RE_MISSING_VERSION.format(module=wrapper_dep.name, version=missing_version),
+        errs,
+    )
+
+
 def test_header_install_location(wrapper):
     subdir = wrapper.module_dir / "db" / "subdir"
     subdir.mkdir(parents=True)
-- 
GitLab