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.3.2
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.3.2.tar.gz | 82.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_jupyter_deploy-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 178.4 kB
Release files / pytest_jupyter_deploy-0.3.2.tar.gz
| Download URL | pytest_jupyter_deploy-0.3.2.tar.gz |
|---|---|
| Size | 82.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1acc2586a4ca71cf2cf74e7066218357b3404a3863b841d037fdd509d24741c
|
|
BLAKE2b-256 checksum How to use checksums |
ad16fb6abd806bd9d5b97e9b0cdf1075e390ad9e5a698b7b83e9dddcfee45dc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","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.3.2-py3-none-any.whl
| Download URL | pytest_jupyter_deploy-0.3.2-py3-none-any.whl |
|---|---|
| Size | 95.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d573c14e47ccb2a6d4b4849077d91320c4e6b5728eb9c84d6bec2f038f7494e
|
|
BLAKE2b-256 checksum How to use checksums |
25b95be7e79e6f9f08c7564f52a7826c81a45f6f3ac4833a756c5373702f48db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","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}
|