pytest-jupyter-deploy
Pytest plugin for E2E testing of jupyter-deploy templates.
Overview
This package provides pytest fixtures and utilities for writing end-to-end tests for jupyter-deploy templates. It handles deployment lifecycle management, configuration loading, and provides helpers for testing web applications with Playwright.
Installation
pip install pytest-jupyter-deploy
For UI testing with Playwright:
pip install "pytest-jupyter-deploy[ui]"
playwright install firefox
Fixtures
e2e_deployment(session-scoped): Manages deployment lifecycle (init, config, up, down)e2e_config(session-scoped): Provides access to suite configuratione2e_suite_dir(session-scoped): Path to the E2E tests directorygithub_oauth_app(function-scoped): Helper for GitHub OAuth2 Proxy authentication with passkey support
Usage
The plugin is automatically loaded by pytest when installed. Use the provided fixtures in your tests.
Example Test
from pytest_jupyter_deploy.deployment import EndToEndDeployment
def test_host_running(e2e_deployment: EndToEndDeployment) -> None:
"""Test that the host is running."""
e2e_deployment.ensure_deployed()
host_status = e2e_deployment.cli.get_host_status()
assert host_status == "running"
Running Tests
# Run E2E tests
pytest -m e2e
# Run against existing deployment
pytest -m e2e --e2e-existing-project=sandbox3
# Capture screenshots on failure
pytest -m e2e --screenshot only-on-failure
Test Utilities
The plugin provides helper functions to use directly in your tests.
Deployment helpers
from pytest_jupyter_deploy.undeployed_project import undeployed_project
def test_init_project(e2e_config: SuiteConfig) -> None:
with undeployed_project(e2e_config) as (project_dir, cli):
result = cli.run_command("show --variables --list")
assert result.returncode == 0
Decorators
from pytest_jupyter_deploy.plugin import skip_if_testvars_not_set
@skip_if_testvars_not_set(["JD_E2E_USER", "JD_E2E_ORG"])
def test_requires_env_vars(e2e_deployment: EndToEndDeployment) -> None: ...
E2E Test Container Image
This package bundles a Dockerfile and docker-compose.yml for a containerized E2E test environment with Python, Terraform, AWS CLI, kubectl, Helm, and Playwright pre-installed. The image is template-independent and used by the jupyter-deploy justfile to run E2E tests locally.
from pytest_jupyter_deploy.image import IMAGE_PATH
# IMAGE_PATH points to the directory containing Dockerfile and docker-compose.yml
License
The Pytest plugin for Jupyter Deploy templates is licensed under the MIT License.
Metadata
Release files for pytest-jupyter-deploy 0.2.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest_jupyter_deploy-0.2.12.tar.gz | 62.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_jupyter_deploy-0.2.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 135.3 kB
Release files / pytest_jupyter_deploy-0.2.12.tar.gz
| Download URL | pytest_jupyter_deploy-0.2.12.tar.gz |
|---|---|
| Size | 62.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
977ebfed0dbd4e298de2b56e661c81e7b4bbcf7847bfe2371c9c83bd0246d39e
|
|
BLAKE2b-256 checksum How to use checksums |
567c6bcca79d64ee3680df2b38e2f53a5b3c6f0ac805ca47904201fa72458682
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pytest_jupyter_deploy-0.2.12-py3-none-any.whl
| Download URL | pytest_jupyter_deploy-0.2.12-py3-none-any.whl |
|---|---|
| Size | 73.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e5db6fdf78255a60e8cf6c6036343f786b84e7d973270274e7c17e8e1085999
|
|
BLAKE2b-256 checksum How to use checksums |
f39efc6aa1687375237614b7f06c3bda870b6880e3c4b36dc2383f47ccd6c258
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|