48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
# Tests
|
||
|
||
Tests for the LED Controller project live under **`tests/`** (pytest + legacy scripts).
|
||
|
||
## Layout
|
||
|
||
| Path | Role |
|
||
|------|------|
|
||
| `test_endpoints.py` | HTTP endpoint checks (often against a running Pi; host configurable in file) |
|
||
| `test_endpoints_pytest.py` | Pytest-style endpoint coverage |
|
||
| `test_browser.py` | Selenium UI flows |
|
||
| `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-NOW–related 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
|
||
|
||
### Pytest (recommended)
|
||
|
||
From the project root (with dev dependencies installed):
|
||
|
||
```bash
|
||
pipenv run pytest tests/ -q
|
||
```
|
||
|
||
### Browser tests (real browser)
|
||
|
||
```bash
|
||
python tests/test_browser.py
|
||
```
|
||
|
||
Requires **Selenium**, Chrome/Chromium, and a matching **ChromeDriver**.
|
||
|
||
### Model tests only
|
||
|
||
```bash
|
||
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.
|