Pytest plugin for E2E testing of jupyter-deploy templates
Project description
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, 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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytest_jupyter_deploy-0.1.0.tar.gz.
File metadata
- Download URL: pytest_jupyter_deploy-0.1.0.tar.gz
- Upload date:
- Size: 38.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8706517ddfc4c860b8707e0a919c40bc681a1bafc85efe635458b6cc1f00369c
|
|
| MD5 |
d80df9d0806b626ed88274d8f29d089f
|
|
| BLAKE2b-256 |
30d99003d1db0c447c0f7758e54af3f7c2627885672e4ff8a290b19e14f4d67a
|
File details
Details for the file pytest_jupyter_deploy-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pytest_jupyter_deploy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36f3f4d3337d612e7939f5c55a353e958322ba5a51ee37f6dee693f71c9d2961
|
|
| MD5 |
531ccc11dc3c747cafc236663a65cb03
|
|
| BLAKE2b-256 |
17f372dc37fa6568e9434297aa5768cb561f48d2ec4539e603bb3cf90fac8eb2
|