9c94df119b
Add EN/RU testing guides, link them from README and docs indexes, and drop stale native Python/Ansible/Terraform suite references.
3.0 KiB
3.0 KiB
Language / Язык: English | Русский
Лаборатория Pulumi: покрытие контрактов oVirt
100% coverage здесь — это HTTP contract matrix: каждая операция из
contracts/ovirt/<series>/api.json для всех series packs Engine, плюс
синтетический HEAD для каждого GET-пути (в contracts нет HEAD; Engine его
принимает). Это не число ресурсов Pulumi provider.
| Series | Операций (примерно) |
|---|---|
| 3.0–3.6, 4.3–4.5, master | ~9 150 выполнений (ops из контрактов + HEAD) |
make test-pulumi-smoke # выборка 3.6 + 4.5 (быстро)
make pulumi-tests # полная матрица (alias: make test-pulumi)
Layer B (опционально): только smoke lifecycle провайдера — не выдавать за полноту API.
Отчёты (в reports/):
pulumi-contract-coverage.html— сводка (гистограмма методов: GET/PUT/POST/DELETE/HEAD)pulumi-contract-coverage.json— результат +coverage(probed/declared,critical)
Пример pass-строки:
COVERAGE 9150/9150 (critical=0)
METHODS {"DELETE":1146,"GET":2314,"HEAD":2314,"POST":2230,"PUT":1146}
Последний полный прогон (2026-07-18)
| Метрика | Значение |
|---|---|
| total / passed / failed / skipped | 9150 / 9150 / 0 / 0 |
| методы | DELETE 1146 · GET 2314 · HEAD 2314 · POST 2230 · PUT 1146 |
| HTTP | 200: 6739 · 404: 1514 · 201: 864 · 400: 22 · 409: 11 |
Series: 3.0–3.6, 4.3–4.5, master — все зелёные (без 401, без 5xx).
Общая матрица проекта: Тестирование.
Фильтры:
OVIRT_SERIES_FILTER=4.5,3.6 make pulumi-tests
OVIRT_METHODS_FILTER=GET make pulumi-tests
SMOKE_ONLY=1 make test-pulumi-smoke
Все suites — только в Docker (lab compose сидит minimal seed). Критерии pass:
- Маршрут Engine достижим и возвращает обработанный статус (
200/201/202/204,400/403/404/405/409/415/422/501) — не401(после unload каждой series suite заново логинится) и не транспортную /5xxошибку. - Для
200/201/202тело ответа должно быть непустым (HEAD исключён). - Успешные collection GET должны возвращать непустой список с
id(пустой[]— дыра seed/ov_api_objects, чинить данные, не skip). - Полный прогон должен покрыть GET, POST, PUT, DELETE и HEAD; любые failures,
отсутствующие методы или
probed != declaredвалят suite (critical=0).