Fix CI/pulumi blockers and document test suites with latest PASS results.

Stabilize node status, cluster-wide Ceph OSD ids, and QEMU cpu utilization so
status/list no longer 500 on model strings; align pulumi defaults to pve1;
add bilingual testing docs with the 2026-07-18 ci-all + pulumi-tests pass.
This commit is contained in:
Sergey Antropoff
2026-07-18 09:38:28 +03:00
parent 6f42d4c318
commit baa1f58ad0
31 changed files with 230 additions and 58 deletions
+52
View File
@@ -0,0 +1,52 @@
**Language / Язык:** [English](testing.md) | [Русский](ru/testing.md)
# Testing
How the repository is tested and where each suite lives.
## Layout
| Location | Role |
|---|---|
| `tests/unit/` | Offline unit tests (handlers, contracts, seed, workers, …) |
| `tests/integration/` | PostgreSQL-backed tests (migrations, durable task leases) |
| `tests/compatibility/` | Surface probe, group smoke, proxmoxer HTTPS, verified-surface ledgers |
| `pulumi-tests/` | Pulumi surface matrix (majors 69) + `pulumi-proxmoxve` lifecycle; HTML report |
Seed used by most suites: `app/simulation/seed.py` (`lab` for in-process surface CI, `small` for Compose / Pulumi).
## Make targets
```bash
make test-unit # pytest: unit only
make test-integration # pytest -m integration (needs Postgres)
make test-surface # every declared method on majors 69
make test-compatibility # proxmoxer smoke (Compose --profile tls)
make ci # ruff + mypy + offline pytest + surface
make ci-all # ci + remaining integration + proxmoxer
make pulumi-tests # Pulumi surface + lifecycle; writes HTML report
```
GitHub Actions on push/PR to `main` runs `make ci` plus Compose/Helm validation.
Run `make ci-all` and `make pulumi-tests` locally before larger API changes.
Pulumi report (after a suite run):
`pulumi-tests/pulumi/reports/report.html` — see [`pulumi-tests/README.md`](../pulumi-tests/README.md).
## Latest local results (2026-07-18)
Full unrestricted run on this checkout:
| Gate | Result |
|---|---|
| `make ci-all` | **PASS** (exit 0) |
| — unit (offline pytest) | 193 passed |
| — surface probe (majors 69) | PASS |
| — integration | 12 passed |
| — proxmoxer compatibility | PASS |
| `make pulumi-tests` | **PASS** (exit 0), suite ~28s |
| — lifecycle (`pulumi-proxmoxve`) | PASS |
| — surface PVE 6.4-15 / 7.4-16 / 8.4.5 / 9.2.3 | PASS, `critical=0` |
| — coverage | **2324 / 2324** methods across majors 69 |
Report artifact: `pulumi-tests/pulumi/reports/report.html` (also `results.json`, `junit.xml`).