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).
Related test suites
There are more e2e tests in re_redap_tests, written in Rust.