Files
openstack-api-simulator/pulumi-tests/README.md
T
inecs 6033967e6a Initial commit: stateful OpenStack API laboratory simulator.
Ship Keystone auth, multi-service handlers (Yoga→Dalmatian), Compose/Helm
packaging, API contract packs, and pytest/Pulumi coverage labs.
2026-07-18 04:26:48 +03:00

51 lines
1.9 KiB
Markdown
Raw 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](README.md) | [Русский](README.ru.md)
# Pulumi OpenStack tests (`pulumi-tests`)
Coverage lab that **maximises `pulumi_openstack`**, then probes remaining pack
operations over HTTP with **non-empty body checks** and **full method coverage**.
## Quick start
```bash
# from repo root
make pulumi-tests
# or
cd pulumi-tests
make up && make build
make test-pulumi-smoke # fast: collection GET only
make test-pulumi # full: all pack ops × all HTTP methods
open reports/pulumi-report.html
```
## Smoke vs full suite
| Target | Mode | What is exercised |
|---|---|---|
| `make test-pulumi-smoke` | Smoke (`TEST_SMOKE=1`) | `pulumi_openstack` + **collection GET** nonempty checks (fast) |
| `make pulumi-tests` / `make test-pulumi` | Full lifecycle | `pulumi_openstack` + **every pack operation × GET/POST/PUT/PATCH/DELETE**, completeness assert (`total == pack size`), nonempty bodies on succeeded responses (DELETE/204 may be empty) |
Pack sizes (ops): yoga ~1060 → antelope ~1108 → caracal ~1196 → **dalmatian ~1357**.
## What runs (per series: yoga → dalmatian)
1. Activate OpenStack series pack
2. **`pulumi up`** `programs/os_coverage` via Automation API — creates/looks up
resources with `pulumi_openstack` (identity, images, compute, networking,
blockstorage, objectstorage, dns, orchestration)
3. Assert **every stack export is non-empty**
4. HTTP-probe pack operations (smoke: collection GET; full: all methods lifecycle)
5. Assert coverage completeness + nonempty JSON on successful body responses
6. `pulumi destroy`
7. Write `pulumi-report.html` + `pulumi-junit.xml`
## Reports
| File | Contents |
|---|---|
| `reports/pulumi-report.html` | HTML summary (expected vs actual + method breakdown) |
| `reports/pulumi-junit.xml` | JUnit |
| `reports/series-<name>.json` | Per-series pulumi + HTTP details |
| `reports/summary.json` | Aggregates |