diff --git a/integration-tests/test_extensions.py b/integration-tests/test_extensions.py index 6ed0a9d..661432b 100644 --- a/integration-tests/test_extensions.py +++ b/integration-tests/test_extensions.py @@ -1,3 +1,4 @@ +import re import subprocess @@ -7,13 +8,13 @@ def test_serverextensions(): """ # jupyter-serverextension writes to stdout and stderr weirdly proc = subprocess.run( - ["/opt/tljh/user/bin/jupyter-serverextension", "list", "--sys-prefix"], + ["/opt/tljh/user/bin/jupyter-server", "extension", "list", "--sys-prefix"], stderr=subprocess.PIPE, ) extensions = [ - "jupyterlab 3.", - "nbgitpuller 1.", + "jupyterlab", + "nbgitpuller", "jupyter_resource_usage", ] @@ -21,27 +22,26 @@ def test_serverextensions(): assert e in proc.stderr.decode() -def test_nbextensions(): +def test_labextensions(): """ - Validate nbextensions we want are installed & enabled + Validate JupyterLab extensions we want are installed & enabled """ - # jupyter-nbextension writes to stdout and stderr weirdly + # jupyter-labextension writes to stdout and stderr weirdly proc = subprocess.run( - ["/opt/tljh/user/bin/jupyter-nbextension", "list", "--sys-prefix"], + ["/opt/tljh/user/bin/jupyter-labextension", "list"], stderr=subprocess.PIPE, stdout=subprocess.PIPE, ) extensions = [ - "jupyter_resource_usage/main", - # This is what ipywidgets nbextension is called - "jupyter-js-widgets/extension", + "@jupyter-server/resource-usage", + # This is what ipywidgets lab extension is called + "@jupyter-widgets/jupyterlab-manager", ] for e in extensions: - assert f"{e} \x1b[32m enabled \x1b[0m" in proc.stdout.decode() - - # Ensure we have 'OK' messages in our stdout, to make sure everything is importable - assert proc.stderr.decode() == " - Validating: \x1b[32mOK\x1b[0m\n" * len( - extensions - ) + # jupyter labextension lists outputs to stderr + out = proc.stderr.decode() + enabled_ok_pattern = re.compile(rf"{e}.*enabled.*OK") + matches = enabled_ok_pattern.search(out) + assert matches is not None diff --git a/tljh/requirements-user-env-extras.txt b/tljh/requirements-user-env-extras.txt index 7f27c70..020779b 100644 --- a/tljh/requirements-user-env-extras.txt +++ b/tljh/requirements-user-env-extras.txt @@ -8,11 +8,11 @@ # the requirements-txt-fixer pre-commit hook that sorted them and made # our integration tests fail. # -notebook==6.* -jupyterlab==3.* +notebook==7.* +jupyterlab==4.* # nbgitpuller for easily pulling in Git repositories nbgitpuller==1.* # jupyter-resource-usage to show people how much RAM they are using -jupyter-resource-usage==0.7.* +jupyter-resource-usage==1.* # Most people consider ipywidgets to be part of the core notebook experience ipywidgets==8.*