Files
2026-07-13 13:05:14 +08:00
..

End-to-end redap tests

End-to-end test suite for redap (Rerun Data Protocol).

Overview

This test suite exercises the full redap stack by using the Python SDK (primarily CatalogClient) against a live Rerun server.

Architectural notes

The catalog_client fixture is the foundation of this test suite. It yields a connected CatalogClient instance which all other fixtures and tests depend on.

By default, the fixture creates a local OSS server for each test. However, it can be configured to connect to an external redap server using the --redap-url option, allowing the test suite to run against different redap implementations (e.g., Cloud deployments).

Running tests

Note: prefix commands with pixi run uvpy -m to run in the pixi/uv environment.

Run against a local OSS server (default):

pixi run uvpy -m pytest -c rerun_py/pyproject.toml rerun_py/tests/e2e_redap_tests

Run against an external redap server:

pytest -c rerun_py/pyproject.toml rerun_py/tests/e2e_redap_tests --redap-url=rerun+http://localhost:51234

With authentication:

pytest -c rerun_py/pyproject.toml rerun_py/tests/e2e_redap_tests --redap-url=rerun+https://example.com --redap-token=your_token

Skip local-only tests (useful for Docker/containerized environments):

pytest -c rerun_py/pyproject.toml rerun_py/tests/e2e_redap_tests -m "not local_only"

Note: When using --resource-prefix with remote storage (s3://, gs://, etc.), local-only tests are automatically skipped.

CI

In CI, this suite runs against two server targets:

Target Profile Triggered on
OSS re_server (Docker) dpf-docker Every PR and push to main
Rerun Hub (cloud stack) dpf-stack Pushes to main only

Tests marked @pytest.mark.local_only are skipped in both CI profiles (they require writing local .rrd files). Tests marked @pytest.mark.cloud_only only run against cloud stacks (dpf-stack).

There are more e2e tests in re_redap_tests, written in Rust.