import subprocess def test_serverextensions(): """ Validate serverextensions we want are installed """ # jupyter-serverextension writes to stdout and stderr weirdly proc = subprocess.run( ["/opt/tljh/user/bin/jupyter-serverextension", "list", "--sys-prefix"], stderr=subprocess.PIPE, ) extensions = [ "jupyterlab", "nbgitpuller 1.", "jupyter_resource_usage", ] for e in extensions: assert e in proc.stderr.decode() def test_labextensions(): """ Validate JupyterLab extensions we want are installed & enabled """ # jupyter-labextension writes to stdout and stderr weirdly proc = subprocess.run( ["/opt/tljh/user/bin/jupyter-labextension", "list"], stderr=subprocess.PIPE, stdout=subprocess.PIPE, ) extensions = [ "@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 )