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:
@@ -27,9 +27,11 @@ page. Russian mirrors live under [`ru/`](ru/README.md).
|
||||
| [FAQ](faq.md) | Short answers |
|
||||
| [Architecture](architecture.md) | Component boundaries |
|
||||
| [Compatibility](compatibility.md) | Evidence model and release matrix |
|
||||
| [Testing](testing.md) | Suites layout, Make targets, latest results |
|
||||
|
||||
Runnable cookbooks: [`examples/`](../examples/README.md).
|
||||
Integration suites: [`pulumi-tests/`](../pulumi-tests/README.md).
|
||||
Test map and latest pass notes: [Testing](testing.md).
|
||||
|
||||
## See also
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ Yes. That is a primary use case. Pin the API major, seed a profile, and point
|
||||
clients at **HTTP `:8006`** (Compose) or your Ingress **HTTPS** hostname on
|
||||
Kubernetes. See [Clients](clients.md). For the
|
||||
Pulumi surface suite see [`pulumi-tests/`](../pulumi-tests/README.md).
|
||||
Full test map and latest recorded results: [Testing](testing.md).
|
||||
|
||||
## Why do some OpenID / LDAP / ACME / Ceph calls “succeed” without remotes?
|
||||
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
| [FAQ](faq.md) | Краткие ответы |
|
||||
| [Архитектура](architecture.md) | Границы компонентов |
|
||||
| [Совместимость](compatibility.md) | Модель evidence и матрица релизов |
|
||||
| [Тесты](testing.md) | Карта наборов, Make-цели, последние результаты |
|
||||
|
||||
Исполняемые cookbook'и: [`examples/`](../../examples/README.ru.md).
|
||||
Интеграционные наборы: [`pulumi-tests/`](../../pulumi-tests/README.ru.md).
|
||||
Карта тестов и последние прогоны: [Тесты](testing.md).
|
||||
|
||||
## См. также
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ PostgreSQL, а не процессы KVM/LXC.
|
||||
Да. Это один из основных сценариев. Закрепите мажор API, загрузите профиль seed и
|
||||
направьте клиентов на **HTTP `:8006`** (Compose) или Ingress **HTTPS** в Kubernetes. См. [Клиенты](clients.md).
|
||||
Набор Pulumi surface — [`pulumi-tests/`](../../pulumi-tests/README.ru.md).
|
||||
Карта тестов и последние результаты: [Тесты](testing.md).
|
||||
|
||||
## Почему некоторые вызовы OpenID / LDAP / ACME / Ceph «успешны» без внешних систем?
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
**Language / Язык:** [English](../testing.md) | [Русский](testing.md)
|
||||
|
||||
# Тесты
|
||||
|
||||
Где живут наборы и как их запускать.
|
||||
|
||||
## Структура
|
||||
|
||||
| Путь | Назначение |
|
||||
|---|---|
|
||||
| `tests/unit/` | Офлайн unit-тесты (handlers, контракты, seed, workers, …) |
|
||||
| `tests/integration/` | Тесты с PostgreSQL (миграции, lease задач) |
|
||||
| `tests/compatibility/` | Surface probe, group smoke, proxmoxer HTTPS, verified-surface |
|
||||
| `pulumi-tests/` | Pulumi surface (majors 6–9) + lifecycle `pulumi-proxmoxve`; HTML-отчёт |
|
||||
|
||||
Seed: `app/simulation/seed.py` (`lab` для in-process surface CI, `small` для Compose / Pulumi).
|
||||
|
||||
## Цели Make
|
||||
|
||||
```bash
|
||||
make test-unit # pytest: только unit
|
||||
make test-integration # pytest -m integration (нужен Postgres)
|
||||
make test-surface # каждый объявленный метод majors 6–9
|
||||
make test-compatibility # proxmoxer smoke (Compose --profile tls)
|
||||
make ci # ruff + mypy + offline pytest + surface
|
||||
make ci-all # ci + остальной integration + proxmoxer
|
||||
make pulumi-tests # Pulumi surface + lifecycle; HTML-отчёт
|
||||
```
|
||||
|
||||
GitHub Actions на push/PR в `main` запускает `make ci` и проверку Compose/Helm.
|
||||
Перед крупными API-изменениями локально: `make ci-all` и `make pulumi-tests`.
|
||||
|
||||
Отчёт Pulumi: `pulumi-tests/pulumi/reports/report.html` — см.
|
||||
[`pulumi-tests/README.ru.md`](../../pulumi-tests/README.ru.md).
|
||||
|
||||
## Последний локальный прогон (2026-07-18)
|
||||
|
||||
Полный прогон без ограничений на этом checkout:
|
||||
|
||||
| Gate | Результат |
|
||||
|---|---|
|
||||
| `make ci-all` | **PASS** (exit 0) |
|
||||
| — unit (offline pytest) | 193 passed |
|
||||
| — surface probe (majors 6–9) | PASS |
|
||||
| — integration | 12 passed |
|
||||
| — proxmoxer compatibility | PASS |
|
||||
| `make pulumi-tests` | **PASS** (exit 0), ~28 с |
|
||||
| — lifecycle (`pulumi-proxmoxve`) | PASS |
|
||||
| — surface PVE 6.4-15 / 7.4-16 / 8.4.5 / 9.2.3 | PASS, `critical=0` |
|
||||
| — coverage | **2324 / 2324** методов majors 6–9 |
|
||||
|
||||
Артефакты: `pulumi-tests/pulumi/reports/report.html` (также `results.json`, `junit.xml`).
|
||||
@@ -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 6–9) + `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 6–9
|
||||
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 6–9) | 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 6–9 |
|
||||
|
||||
Report artifact: `pulumi-tests/pulumi/reports/report.html` (also `results.json`, `junit.xml`).
|
||||
Reference in New Issue
Block a user