Skip to main content

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 configuration
  • e2e_suite_dir (session-scoped): Path to the E2E tests directory
  • github_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.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-jupyter-deploy 0.2.11
File Size Uploaded
pytest_jupyter_deploy-0.2.11.tar.gz 62.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-jupyter-deploy 0.2.11
File Interpreter ABI Platform
pytest_jupyter_deploy-0.2.11-py3-none-any.whl Python 3 none any Details

Total release size: 135.2 kB

Release files / pytest_jupyter_deploy-0.2.11.tar.gz

Download URL pytest_jupyter_deploy-0.2.11.tar.gz
Size 62.2 kB
Tags Source
SHA-256 checksum
How to use checksums
71c4fb7c6ed40adab56c1ed32521e198b5e2d9ecb3e5b5780ee40b8ac3206c43
BLAKE2b-256 checksum
How to use checksums
f2a46e9f6f5a512c7635250406397d1e0b40aa8cbef9c0011dbaecbfb8967254
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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.11-py3-none-any.whl

Download URL pytest_jupyter_deploy-0.2.11-py3-none-any.whl
Size 73.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a88dadbe92114a7f60168af78fd7d8f352794fc4ceeee7052a471ecf530d22f
BLAKE2b-256 checksum
How to use checksums
6da6da872f0f4ea363644122d8e8599c51bab72114a25654c907532bc738dc42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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 history Release notifications | RSS feed

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.11 This release

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page