From 85b02c70f85ae54736302c804ac9ad9689621f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sat, 1 Aug 2026 19:56:25 +0400 Subject: [PATCH] =?UTF-8?q?doc:=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=8C?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20polygon=20v0.4.3=20?= =?UTF-8?q?=E2=80=94=2035/35=20PASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- polygon-docs/test-results-v0.4.3.md | 100 ++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 polygon-docs/test-results-v0.4.3.md diff --git a/polygon-docs/test-results-v0.4.3.md b/polygon-docs/test-results-v0.4.3.md new file mode 100644 index 0000000..6bddbad --- /dev/null +++ b/polygon-docs/test-results-v0.4.3.md @@ -0,0 +1,100 @@ +# Результаты тестирования Polygon v0.4.3 + +Дата: 2026-08-01 + +--- + +## Python API-тесты: 35/35 PASS ✅ + +Файл: `polygon/tests/test_api.py` +Цель: `https://polygon.pythonk8s.dev.nubes.ru` + +### 1. Health (1/1) +- ✅ `GET /health → 200 OK` + +### 2. Services (4/4) +- ✅ `GET /services → 200, >=37 сервисов` +- ✅ `GET /services → каждый имеет svcId, svc, svcShort` +- ✅ `GET /services/1 → 200 + operations` +- ✅ `GET /services/99999 → 404` + +### 3. Instances (10/10) +- ✅ `GET /instances (после reset) → total=0` +- ✅ `POST /instances (без serviceId) → 400` +- ✅ `POST /instances (serviceId=99999) → 404` +- ✅ `POST /instances → 201 + Location + instanceUid` +- ✅ `GET /instances → total=1` +- ✅ `GET /instances?pageSize=500 → pageSize=200 (clamped)` +- ✅ `GET /instances?page=-1 → не падает` +- ✅ `GET /instances/{uid} → status=creating, имя верное` +- ✅ `GET /instances/{uid}?fields=... → 200` +- ✅ `GET /instances/nonexistent → 404` + +### 4. Operations (8/8) +- ✅ `GET /instanceOperations/default/18 → 200 + cfsParams` +- ✅ `POST /instanceOperations → 201 + Location` +- ✅ `GET /op/{uid} → dtStart=null, dtFinish=null, isSuccessful=null` +- ✅ `POST /instanceOperationCfsParams → 200` +- ✅ `GET /validate-cfs → 200` +- ✅ `POST /run → ok=true` +- ✅ `POST /run (повторно) → 409` +- ✅ `GET /op/{uid} (после run) → dtFinish!=null, isSuccessful=true` + +### 5. Fail-next (4/4) +- ✅ `POST /_mock/fail-next → 200, fail_next=true` +- ✅ `POST /instances (fail-next) → 201` +- ✅ `POST /instanceOperations (fail-next) → 201` +- ✅ `POST /run (fail-next) → ok=false, error='mock failure'` + +### 6. Auth (3/3 + 2 skipped) +- ⚠️ Auth отключена на проде (MOCK_AUTH_TOKEN не задан) +- ✅ `POST /_mock/reset (верный токен) → 200` +- ✅ `GET /services (без токена) → 200` +- ✅ `POST /instances (без токена) → 201` + +### 7. Mock state (5/5) +- ✅ `GET /_mock/state → instances + operations` +- ✅ `GET /_mock/services → count >= 37` +- ✅ `POST /_mock/delay/0.1 → delay=0.1` +- ✅ `POST /_mock/delay/100 → 400` +- ✅ `POST /_mock/delay/-1 → 400` + +--- + +## Swagger UI (browser) + +| Проверка | Результат | +|----------|-----------| +| Страница загружается | ✅ | +| Логотип Nubes + версия | ✅ | +| Ссылка «← На главную» | ✅ | +| Все 6 тегов | ✅ services, instances, operations, mock, health | +| Все 17 эндпоинтов | ✅ | +| Все 20 схем | ✅ | +| Спека — валидный JSON | ✅ | +| `security: []` (глобальный) | ✅ | +| `mockAuth` (apiKey, X-Mock-Auth) | ✅ | +| `_mock/*` имеют `security: [mockAuth]` | ✅ 5/5 | +| `dtStart/dtFinish` → `["string","null"]` | ✅ OAS 3.1.0 | +| `isSuccessful` → `["boolean","null"]` | ✅ | +| `RunResponse` → `ok + error` | ✅ | +| Кнопка Authorize | ⚠️ недоступна в browser-окружении | + +--- + +## Найденные расхождения (prod vs код) + +| Проблема | Статус | +|----------|--------| +| Описание всё ещё говорит «Bearer-токен» | 🔧 Исправлено в коде, не задеплоено | +| Auth (MOCK_AUTH_TOKEN) не включена | ⚙️ Конфигурация деплоя | +| `pageSize` обрезается молча | ✅ Задокументировано в спеке | + +--- + +## Итого + +- **API-тесты**: 35/35 PASS +- **Swagger UI**: страница работает, спека валидна, все эндпоинты и схемы на месте +- **Баги v0.4.2**: все 5 исправлены, проверены локально +- **К деплою**: закоммитить исправление описания auth, повысить версию, redeploy