Skip to main content

Testing utilities for Hop3

Project description

hop3-testing

Testing framework for Hop3 deployment validation.

Overview

hop3-testing provides utilities and fixtures for testing Hop3 deployments. It supports running tests against Docker containers or remote servers, with a catalog of test applications covering various languages and frameworks.

Features

  • Multiple targets: Test against Docker containers or remote SSH servers
  • App catalog: Pre-built test applications for various languages
  • Deployment sessions: Automated deploy/verify/cleanup workflow
  • pytest fixtures: Integration with pytest for E2E testing
  • Category filtering: Run tests by language or framework

Installation

pip install hop3-testing

Quick Start

# List available tests
hop3-test list

# Run system tests on Docker
hop3-test system --docker

# Test specific apps
hop3-test apps 010-flask-pip-wsgi

# Test against remote server
hop3-test apps --host server.example.com

# Run CI tests
hop3-test ci

Commands

Command Description
hop3-test system Deploy Hop3 and run system tests
hop3-test apps Test apps against pre-deployed Hop3
hop3-test list List available tests
hop3-test show <name> Show test details
hop3-test ci Run CI tests (fast+medium, P0)
hop3-test dev Run developer tests (fast, P0 only)

Common Options

Option Description
-v, --verbose Verbose output
--fail-fast Stop on first failure
--keep Keep apps deployed after testing
--docker Use Docker target
--host HOST Remote server hostname

Architecture

hop3-testing/
├── src/hop3_testing/
│   ├── cli/              # CLI commands
│   │   └── commands/     # Click command implementations
│   ├── catalog/          # Test discovery
│   │   ├── scanner.py    # Discovers test.toml files
│   │   └── models.py     # TestDefinition, Category
│   ├── apps/
│   │   ├── catalog.py    # AppSource dataclass
│   │   └── deployment.py # DeploymentSession
│   ├── targets/
│   │   ├── base.py       # DeploymentTarget ABC
│   │   ├── docker.py     # DockerTarget
│   │   └── remote.py     # RemoteTarget
│   └── results/          # Result storage and reporting
└── tests/

Test Categories

Category Languages/Frameworks
python Flask, FastAPI, Django
nodejs Express, Fastify
ruby Sinatra, Rails
go Fiber, Gin
rust Actix-web, Axum
static HTML, Hugo, Jekyll

Development

# Run tests
uv run pytest tests/ -v

# Lint and format
uv run ruff check src/
uv run ruff format src/

Documentation

Related Packages

License

Apache-2.0 - Copyright (c) 2024-2026, Abilian SAS

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

hop3_testing-0.4.0b7.tar.gz (77.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hop3_testing-0.4.0b7-py3-none-any.whl (106.5 kB view details)

Uploaded Python 3

File details

Details for the file hop3_testing-0.4.0b7.tar.gz.

File metadata

  • Download URL: hop3_testing-0.4.0b7.tar.gz
  • Upload date:
  • Size: 77.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for hop3_testing-0.4.0b7.tar.gz
Algorithm Hash digest
SHA256 1bf9ad99943c29b85f422e0212d38a35006f32683c046d8baf3dd76b0b63945a
MD5 441c1d004664678c6ee4866bfa287756
BLAKE2b-256 274b90633015bcd460e6dcc948a1d54b34ac2ca61cced9d7baf4a56baa0df855

See more details on using hashes here.

File details

Details for the file hop3_testing-0.4.0b7-py3-none-any.whl.

File metadata

  • Download URL: hop3_testing-0.4.0b7-py3-none-any.whl
  • Upload date:
  • Size: 106.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for hop3_testing-0.4.0b7-py3-none-any.whl
Algorithm Hash digest
SHA256 d98b9c6ce51659790a6a35d389e6c5c8a92c90724875d34373b94e043475c9d0
MD5 6c5c05d6367d5ebb35894c2239612394
BLAKE2b-256 5ec935c2d7a089475a1980c501fd8c1f99c91bdfa974b8e512bc8fb921cc74e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page