diff --git a/packages/wf-multi-area-model/package.py b/packages/wf-multi-area-model/package.py index 01ffda36e18216b0037e7d4fc043830fb8cbd2b7..3485e4a14b4c8cd05fa3621baec42ae890332c86 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}")))