From e744e05e5cc054d2daffa1289292e37fb8969f40 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de>
Date: Fri, 15 Sep 2023 13:01:27 +0200
Subject: [PATCH] feat(wf-bss2-demos): add test_notebooks

---
 packages/wf-brainscales2-demos/package.py | 27 ++++++++++++++++-------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/packages/wf-brainscales2-demos/package.py b/packages/wf-brainscales2-demos/package.py
index 4999678e..36d5c19f 100644
--- a/packages/wf-brainscales2-demos/package.py
+++ b/packages/wf-brainscales2-demos/package.py
@@ -39,16 +39,10 @@ class WfBrainscales2Demos(Package):
         # sanity_check_prefix requires something in the install directory
         mkdirp(prefix + "/.spack_test_results")
 
-    @run_after("install")
-    @on_package_attributes(run_tests=True)
-    def installcheck(self):
+    def _run_notebooks(self):
+        # TODO: remove debug output
         cmd_env = which("env")
         cmd_env()
-        # enable "EBRAINS lab" mode
-        os.environ["LAB_IMAGE_NAME"] = "EBRAINS"
-        # select "EBRAINS experimental" upstream experiment service
-        os.environ["LAB_KERNEL_NAME"] = "EBRAINS-experimental"
-        os.environ["JUPYTERHUB_USER"] = "spack-test-wf-brainscales2-demos"
         # execute notebook and save
         jupyter = Executable("jupyter")
         jupyter("nbconvert",
@@ -60,3 +54,20 @@ class WfBrainscales2Demos(Package):
             "ts_05-yin_yang.ipynb",
             "--output",
             prefix+"/.spack_test_results/ts_05-yin_yang.ipynb")
+
+    def _set_collab_things(self):
+        # enable "EBRAINS lab" mode
+        os.environ["LAB_IMAGE_NAME"] = "EBRAINS"
+        # select "EBRAINS experimental" upstream experiment service
+        os.environ["LAB_KERNEL_NAME"] = "EBRAINS-experimental"
+        os.environ["JUPYTERHUB_USER"] = "spack-test-wf-brainscales2-demos"
+
+    @run_after("install")
+    @on_package_attributes(run_tests=True)
+    def installcheck(self):
+        self._set_collab_things()
+        self._run_notebooks()
+
+    def test_notebooks(self):
+        self._set_collab_things()
+        self._run_notebooks()
-- 
GitLab