diff --git a/Makefile b/Makefile index 8c5173cd..b0f2f7bd 100644 --- a/Makefile +++ b/Makefile @@ -128,7 +128,6 @@ cont-rm-all: ## remove all containers -dev/%: DARGS?=-e JUPYTER_ENABLE_LAB=yes dev/%: PORT?=8888 dev/%: ## run a foreground container for a stack docker run -it --rm -p $(PORT):8888 $(DARGS) $(OWNER)/$(notdir $@) diff --git a/base-notebook/start-notebook.sh b/base-notebook/start-notebook.sh index a0ab5a97..d32dd8dd 100755 --- a/base-notebook/start-notebook.sh +++ b/base-notebook/start-notebook.sh @@ -4,6 +4,10 @@ set -e +# The Jupyter command to launch +# JupyterLab by default +JUPYTER_CMD="${JUPYTER_CMD:=lab}" + if [[ -n "${JUPYTERHUB_API_TOKEN}" ]]; then echo "WARNING: using start-singleuser.sh instead of start-notebook.sh to start a server associated with JupyterHub." exec /usr/local/bin/start-singleuser.sh "$@" @@ -15,10 +19,8 @@ if [[ "${RESTARTABLE}" == "yes" ]]; then fi if [[ -n "${JUPYTER_ENABLE_LAB}" ]]; then - # shellcheck disable=SC1091,SC2086 - exec /usr/local/bin/start.sh ${wrapper} jupyter lab ${NOTEBOOK_ARGS} "$@" -else echo "WARNING: Jupyter Notebook deprecation notice https://github.com/jupyter/docker-stacks#jupyter-notebook-deprecation-notice." - # shellcheck disable=SC1091,SC2086 - exec /usr/local/bin/start.sh ${wrapper} jupyter notebook ${NOTEBOOK_ARGS} "$@" fi + +# shellcheck disable=SC1091,SC2086 +exec /usr/local/bin/start.sh ${wrapper} jupyter ${JUPYTER_CMD} ${NOTEBOOK_ARGS} "$@" diff --git a/base-notebook/test/test_container_options.py b/base-notebook/test/test_container_options.py index 9deb677d..2c32d335 100644 --- a/base-notebook/test/test_container_options.py +++ b/base-notebook/test/test_container_options.py @@ -23,8 +23,7 @@ def test_cli_args(container: TrackedContainer, http_client: requests.Session) -> warnings = [ warning for warning in logs.split("\n") if warning.startswith("WARNING") ] - assert len(warnings) == 1 - assert warnings[0].startswith("WARNING: Jupyter Notebook deprecation notice") + assert not warnings assert "login_submit" not in resp.text @@ -49,8 +48,7 @@ def test_unsigned_ssl( warnings = [ warning for warning in logs.split("\n") if warning.startswith("WARNING") ] - assert len(warnings) == 1 - assert warnings[0].startswith("WARNING: Jupyter Notebook deprecation notice") + assert not warnings def test_uid_change(container: TrackedContainer) -> None: diff --git a/base-notebook/test/test_start_container.py b/base-notebook/test/test_start_container.py index c644a858..a4f14ac8 100644 --- a/base-notebook/test/test_start_container.py +++ b/base-notebook/test/test_start_container.py @@ -11,10 +11,14 @@ LOGGER = logging.getLogger(__name__) @pytest.mark.parametrize( - "env,expected_server", + "env,expected_server,expected_warning", [ - (["JUPYTER_ENABLE_LAB=yes"], "lab"), - (None, "notebook"), + (["JUPYTER_ENABLE_LAB=yes"], "lab", True), + (None, "lab", False), + (["JUPYTER_CMD=lab"], "lab", False), + (["JUPYTER_CMD=notebook"], "notebook", False), + (["JUPYTER_CMD=server"], "server", False), + (["JUPYTER_CMD=nbclassic"], "nbclassic", False), ], ) def test_start_notebook( @@ -22,6 +26,7 @@ def test_start_notebook( http_client: requests.Session, env, expected_server: str, + expected_warning: bool, ) -> None: """Test the notebook start-notebook script""" LOGGER.info( @@ -36,7 +41,7 @@ def test_start_notebook( logs = c.logs(stdout=True).decode("utf-8") LOGGER.debug(logs) assert "ERROR" not in logs - if expected_server != "notebook": + if not expected_warning: assert "WARNING" not in logs else: warnings = [ @@ -48,10 +53,6 @@ def test_start_notebook( assert ( f"Executing the command: jupyter {expected_server}" in logs ), f"Not the expected command (jupyter {expected_server}) was launched" - # Checking warning messages - if not env: - msg = "WARNING: Jupyter Notebook deprecation notice" - assert msg in logs, f"Expected warning message {msg} not printed" def test_tini_entrypoint(