Files
led-controller/tests
pi 827eb97203 feat(settings): server global brightness and Wi-Fi driver resync
- Serve GET /settings as JSON by removing duplicate HTML route (use /settings/page for the standalone UI).

- Save global_brightness via PUT; broadcast to connected drivers; push saved level when outbound WS connects.

- Zones UI loads brightness from GET /settings only (no localStorage).

- Bump led-driver submodule for settings.save on brightness with save flag.

- Extend API doc and endpoint tests for global_brightness.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 22:15:30 +12:00
..
2026-01-16 22:31:47 +13:00

Tests

Tests for the LED Controller project live under tests/ (pytest + legacy scripts).

Layout

Path Role
test_endpoints.py HTTP endpoint checks (LED_CONTROLLER_RUN_DEVICE_ENDPOINT_TESTS=1); test_zones / test_zone_edit_workflow hit /zones
test_endpoints_pytest.py Pytest-style endpoint coverage
test_browser.py Selenium UI flows (set LED_CONTROLLER_RUN_BROWSER_TESTS=1 to run; uses test_zones_ui and legacy tabsManager JS aliases)
test_pattern_ota_send.py Pattern OTA / Wi-Fi send helpers
tcp_test_server.py, async_tcp_server.py TCP test doubles for driver protocol
udp_server.py UDP discovery / hello test listener (port 8766)
ws.py WebSocket client checks
p2p.py ESP-NOWrelated helpers / experiments
web.py Local dev static server (not the main app)
conftest.py Pytest fixtures
models/ Model unit tests (run_all.py, test_zone.py, …)

Running tests

From the project root (with dev dependencies installed):

pipenv run pytest tests/ -q

Browser tests (real browser)

python tests/test_browser.py

Requires Selenium, Chrome/Chromium, and a matching ChromeDriver.

Model tests only

python tests/models/run_all.py

Local static server

tests/web.py serves files for quick UI experiments; it is not the Microdot app. For the real server use pipenv run run from the repo root.