ESPSomfy-RTS/test/e2e
cjkas 10521cf78d test: start the e2e suite for socket protocol 2
A pytest suite run by hand against a device (test/e2e/README.md): hello, the schema and its hash, the sync with next and resync, replies to bad frames, feed subscriptions, the status event, every client syncing at once, a sixth client refused, a page load, and the socket under the device's security mode. It never transmits, changes settings or reboots. --record saves hello, the sync and the schema as fixtures.

PROTOCOL.md now describes the protocol as built.

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: start the e2e suite for socket protocol 2 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.