Files
logos-messaging-nim/tests-e2e
Egor Rachkovskii f2c64a3a8e test(e2e): port the remaining channel delivery scenarios
Six channel tests were left behind in the interop repo when the suite
moved here, so the paths they cover — ingress filtering by content topic,
causal ordering, late joiners, three-way fan-out and channel re-creation —
are unguarded in this repo's CI.

Bring them over: RC04 send-after-close, RC07 foreign content topic, RC08
bidirectional causal order, RC09 late-joining receiver, RC12 three
participants, RC13 close/re-create then send.

RC07 and RC08 get store off like every other channel test; the interop
copies left the fixture default on, which pins an archive to the shared
working directory for no reason of theirs.
2026-08-17 15:26:25 +01:00
..

tests-e2e — logos-delivery API/e2e tests (Python)

End-to-end tests for liblogosdelivery, driven through the Python bindings (C-FFI). Migrated from logos-delivery-interop-tests (the wrapper / send-API suite).

Layout

  • src/ — test framework (node wrappers, steps, helpers)
  • tests/wrappers_tests/ — the API/e2e scenario tests (test_s02…s31)
  • vendor/logos-delivery-python-bindings/waku/wrapper.py — CFFI binding (NodeWrapper); it dlopens ../lib/liblogosdelivery.so

Run locally

# 1. Build the shared library and place it where the binding looks for it
./tests-e2e/scripts/prepare_lib.sh

# 2. Python env + deps
python -m venv .venv && source .venv/bin/activate
pip install -r tests-e2e/requirements.txt

# 3. Run (from tests-e2e/)
cd tests-e2e
pytest tests/wrappers_tests -m "not docker_required"   # 51 pure-binding tests
pytest tests/wrappers_tests -m docker_required          # 5 tests that also need a Docker nwaku peer (S11/S19/S20/S25/S31)

CI

.github/workflows/e2e-api-tests.yml (called from ci.yml, needs: build) downloads the liblogosdelivery artifact produced by the build job and runs the non-docker subset on every PR — so a protocol change and its e2e test land in the same PR.