Metadata-Version: 2.3
Name: ess-community-integration-tests
Version: 26.4.1
Author: Element Creations Ltd
Author-email: Element Creations Ltd <contact@element.io>
License: AGPL-3.0-only
Requires-Dist: pytest>=8.4.2
Requires-Dist: lightkube>=0.19.1
Requires-Dist: python-on-whales>=0.80.0
Requires-Dist: aiohttp>=3.13.3
Requires-Dist: cryptography>=46.0.5
Requires-Dist: platformdirs>=4.9.2
Requires-Dist: pytest-kubernetes>=0.7.2
Requires-Dist: signedjson>=1.1.4
Requires-Dist: aiohttp-retry>=2.9.1
Requires-Dist: jsonschema>=4.26.0
Requires-Dist: prometheus-client>=0.24.1
Requires-Dist: httpx-retries>=0.4.6
Requires-Dist: typer>=0.24.1
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: semver>=3.0.4
Requires-Dist: rapidfuzz>=3.14.3
Requires-Dist: pytest-asyncio-cooperative>=0.40.0
Requires-Dist: python-dotenv>=1.2.2
Requires-Python: >=3.11.7, <4.0
Description-Content-Type: text/markdown

<!--
Copyright 2026 Element Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only
-->

# ESS Community Integration Tests

## Overview
The ESS Community Integration Tests project is designed to facilitate the testing of components against Element Server Suite. It provides a command-line interface (CLI) to run ESS integration tests.

## Features
- Set up a Kubernetes cluster for testing.
- Run integration tests for ESS using predefined test suites.
- Customize test runs with additional values files.

## Prerequisites
- Python 3.11 or higher
- Docker
- [k3d](https://k3d.io/stable/)
- [Helm](https://helm.sh/docs/intro/install)
- Optional: [uv](https://docs.astral.sh/uv/getting-started/installation/) to install from git

## Installation


```sh
pipx install ess-community-integration-tests
uvx ess-community-integration-tests
```

You can also install it from the git repository :

```sh
# You can also use any ESS Community version
VERSION=main
uv tool install git+https://github.com/element-hq/ess-helm.git@$VERSION#subdirectory=tests
```

Example:

```sh
VERSION=main
uv tool install git+https://github.com/element-hq/ess-helm.git@$VERSION#subdirectory=tests
    Updated https://github.com/element-hq/ess-helm.git (d6d33a7f7051a0b6bbdcc609a059ae328feee269)
      Built ess-community-integration-tests @ git+https://github.com/element-hq/ess-helm.git@d6d33a7f7051a0b6bbdcc609a059ae328feee269#subdirectory=tests
...
Installed 3 executables: collect-ess-logs, pytest-ess, setup-ess-cluster
```

## Usage

### Setting Up a Cluster
To set up a Kubernetes cluster for testing, use the `setup-ess-cluster` command:

```bash
setup-ess-cluster
```

### Running Tests
To run tests, use the `run-tests` command:

```bash
pytest-ess --test-suite <test-suite-name> [options]
```

#### Options
- `--test-suite`: Name of the test suite to run. Available test suites are defined in the `env` directory as `.rc` files.
- `--pull-chart`: Pull the Helm chart for testing.
- `--chart-version`: Specify the chart version to pull. If not provided, the version is inferred from the package version.
- `--keep`: Keep the Kubernetes cluster after tests complete.
- `--additional-test-values-file`: Path to an additional values file for custom test configurations.

## Test Suites
Test suites are defined in the `env` directory as `.rc` files. Each file corresponds to a different test environment configuration.
