mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-08-27 00:11:10 +00:00
SDS persists its state per channelId and restores it on create, so the fixed ids these tests used carried one run's causal history into the next and made repeated local runs diverge from a clean CI run. Call unique_channel_id(), which has been sitting unused in wrapper_helpers since the delivery tests landed, and rename the constants it now seeds from *_ID to *_PREFIX so the name says what the value is.
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); itdlopens../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.