mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-10 11:32:57 +00:00
Install tini as an ubuntu package
This commit is contained in:
43
base-notebook/test/test_start_container.py
Normal file
43
base-notebook/test/test_start_container.py
Normal file
@@ -0,0 +1,43 @@
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
import logging
|
||||
import pytest
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"env,expected_server", [(["JUPYTER_ENABLE_LAB=yes"], "lab"), (None, "notebook"), ],
|
||||
)
|
||||
def test_start_notebook(container, http_client, env, expected_server):
|
||||
"""Test the notebook start-notebook script"""
|
||||
LOGGER.info(
|
||||
f"Test that the start-notebook launches the {expected_server} server from the env {env} ..."
|
||||
)
|
||||
c = container.run(tty=True, environment=env, command=["start-notebook.sh"])
|
||||
resp = http_client.get("http://localhost:8888")
|
||||
assert resp.status_code == 200, "Server is not listening"
|
||||
logs = c.logs(stdout=True).decode("utf-8")
|
||||
LOGGER.debug(logs)
|
||||
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 = "WARN: Jupyter Notebook deprecation notice"
|
||||
assert msg in logs, f"Expected warning message {msg} not printed"
|
||||
|
||||
|
||||
def test_tini_entrypoint(container, pid=1, command="tini"):
|
||||
"""Check that tini is launched as PID 1
|
||||
|
||||
Credits to the following answer for the ps options used in the test:
|
||||
https://superuser.com/questions/632979/if-i-know-the-pid-number-of-a-process-how-can-i-get-its-name
|
||||
"""
|
||||
LOGGER.info(f"Test that {command} is launched as PID {pid} ...")
|
||||
c = container.run(tty=True, command=["start.sh"])
|
||||
# Select the PID 1 and get the corresponding command
|
||||
cmd = c.exec_run(f"ps -p {pid} -o comm=")
|
||||
output = cmd.output.decode("utf-8").strip("\n")
|
||||
assert output == command, f"{command} shall be launched as pid {pid}, got {output}"
|
Reference in New Issue
Block a user