From b7dff4bab5b28f7b42b9ee4ffef231a70f5e1538 Mon Sep 17 00:00:00 2001
From: Eleni Mathioulaki <emathioulaki@athenarc.gr>
Date: Tue, 26 Sep 2023 18:45:15 +0200
Subject: [PATCH] run multi_area_model as stand-alone test

---
 packages/wf-multi-area-model/package.py | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/packages/wf-multi-area-model/package.py b/packages/wf-multi-area-model/package.py
index 01ffda36..3485e4a1 100644
--- a/packages/wf-multi-area-model/package.py
+++ b/packages/wf-multi-area-model/package.py
@@ -28,12 +28,26 @@ class WfMultiAreaModel(Package):
     depends_on("py-notebook", type="test")
 
     def install(self, spec, prefix):
-        # sanity_check_prefix requires something in the install directory
-        mkdirp(prefix + "/.spack_test_results")
+        install_tree(".", join_path(prefix, "notebooks"))
+
+    def _run_notebooks(self, output_dir):
+        mkdirp(output_dir)
+        # execute notebook and save
+        jupyter = Executable("jupyter")
+        jupyter("nbconvert",
+            "--ExecutePreprocessor.kernel_name=python3",
+            "--execute",
+            "--allow-errors",
+            "--to",
+            "notebook",
+            join_path(self.prefix, "notebooks", "multi-area-model.ipynb"),
+            "--output",
+            join_path(output_dir, "multi-area-model.ipynb"))
 
     @run_after("install")
     @on_package_attributes(run_tests=True)
     def installcheck(self):
-        # execute notebook and save
-        jupyter = Executable("jupyter")
-        jupyter("nbconvert", "--ExecutePreprocessor.kernel_name=python3", "--execute", "--allow-errors", "--to", "notebook", "multi-area-model.ipynb", "--output", prefix+"/.spack_test_results/multi-area-model.ipynb")
+        self._run_notebooks(join_path(self.prefix, ".spack_test_results"))
+
+    def test(self):
+        self._run_notebooks(join_path(self.test_suite.stage, self.spec.format("out-{name}-{version}-{hash:7}")))
-- 
GitLab