Files
Sergey Antropoff baa1f58ad0 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.
2026-07-18 09:38:28 +03:00

53 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**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`).