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.0b4.tar.gz (76.6 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.0b4-py3-none-any.whl (105.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hop3_testing-0.4.0b4.tar.gz
  • Upload date:
  • Size: 76.6 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.0b4.tar.gz
Algorithm Hash digest
SHA256 a84ac3f7bc23a2d97f1fc5b00512e39c319f056ed6972568035df58d7e94c3bf
MD5 f36e30393aa7ab7f444b363dbf5df68e
BLAKE2b-256 87a016f5658d626449cadf282c419d15260550e77a3e14d301faa1c0c946e694

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hop3_testing-0.4.0b4-py3-none-any.whl
  • Upload date:
  • Size: 105.3 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.0b4-py3-none-any.whl
Algorithm Hash digest
SHA256 a81cbeb8cde39653f714ad9d4fab737f8f8c3cc26c5d742448fd77cfc16a7923
MD5 2ada3e96b82decb2f782075a485dbf24
BLAKE2b-256 4a3f7211bb1a7f4bd37505a8f452254f4039e5a0bef936c23cfb334d22141fcd

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