ESPSomfy-RTS/test/e2e
cjkas d869bb53d5 test: record protocol 2 fixtures from a device
hello, the schema and a whole sync as the device sent them, recorded with pytest test/e2e --record. Remote addresses, rolling codes, names, the server id, hostname and SSID are replaced with fake values while recording, since with an address and its rolling code anyone could forge frames for a real installation's shades.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 11:03:07 +02:00
..
conftest.py test: start the e2e suite for socket protocol 2 2026-10-24 11:03:07 +02:00
proto_client.py test: start the e2e suite for socket protocol 2 2026-10-24 11:03:07 +02:00
README.md test: start the e2e suite for socket protocol 2 2026-10-24 11:03:07 +02:00
test_auth.py test: start the e2e suite for socket protocol 2 2026-10-24 11:03:07 +02:00
test_messages.py test: start the e2e suite for socket protocol 2 2026-10-24 11:03:07 +02:00
test_survival.py test: start the e2e suite for socket protocol 2 2026-10-24 11:03:07 +02:00
test_sync.py test: record protocol 2 fixtures from a device 2026-10-24 11:03:07 +02:00

e2e suite

Runs against a real device on your network, by hand, never in CI. It checks socket protocol 2 (PROTOCOL.md) and that the device survives the loads that used to run its heap out.

~/.platformio/penv/Scripts/uv run --no-project --with pytest -- pytest test/e2e --device 192.168.1.120
Option Use
--device the device's address (required)
--password, --username / --pin the credentials of a Secured device
--record save hello, the sync and the schema to test/fixtures/proto2/, for the web UI and Home Assistant tests

A plain run sends nothing on air, changes no settings and doesn't reboot the device. It does fill every socket slot for a few seconds, and replays a page load.

The tests run in whatever security mode the device is in; the suite never changes it. To test both modes, run the suite once in each.