unip-controller/tests/integration/requests/app2/readme.md

163 lines
5.8 KiB
Markdown
Raw Normal View History

2025-01-29 13:13:51 +00:00
---
**Система**: Единая библиотека, Центр ИИ НИУ ВШЭ
**Модуль**: Тесты
**Авторы**: Полежаев В.А., Хританков А.С.
**Дата создания**: 2024 г.
---
# Ручное тестирование пайплайнов
## Используемые данные
Ресурсы тестового приложения находятся в папке `tests/data/resources/pu-user1/apps/app2`.
Используется тестовый пользователь `pu-user1`
(ресурсы пользователя см. в папке `tests/data/resources/pu-user1`).
Запросы и данные запросов находятся в папке `tests/integration/requests/test_app2`.
1. Приложение pu-user1-pa-app2 пользователя pu-user1 c размещенным APIComponent для Pipelines API, Files API.
См. api-pipelines.yaml, api-files.yaml.
2. Пайплайны. См. exp-pipeline6.yaml и остальные ресурсы пайплайнов в файлах с маской exp-pipeline*.yaml.
## Пайплайны
### test-ep6 (exp-pipeline6.yaml)
Базовый тестовый пайплайн с одним этапом.
Для этого пайплайна есть два манифеста интерфесов APIComponent с OIDC аутентификацией:
- api-cmp6-oidc.yaml (OIDC)
- api-cmp6-oidc-ba.yaml (OIDC, Basic)
### test-ep7 (exp-pipeline7.yaml)
Особенности:
- Повторяет логику test-ep6, но для переменных пути и ящики используются по умолчанию;
### test-ep8, test-ep9 (exp-pipeline8.yaml, exp-pipeline9.yaml)
Особенности:
- Пайплайны связаны в цепочку, test-ep8 вызывает test-ep9.
### test-ep10 (exp-pipeline10.yaml)
Особенности:
- Включает спецификацию типов входных и выходных переменных;
## Данные запросов
### data.json, data1.json, data2.json
Отражают все основные виды входов:
- только файловый вход (data.json)
- файловый и объектный вход (data1.json)
- только объектный вход (data2.json)
Виды выходов:
- заданная файловая группа (все файлы)
- файловая группа не задана, будет создана временная файловая группа (все файлы)
Для использования data.json необходимо предварительно загрузить содержимое файла
test-group21/file22.
Данные data.json, data1.json, data2.json применимы для тестирования пайплайнов:
- test-ep6
- test-ep7
- test-ep12
Данные data2.json применимы для тестирования пайплайнов:
- test-ep8 и test-ep9
### data-typed.json, data-typed-bad.json, data-typed-bad2.json
Включают корректные и некорректные относительно спецификации типов входов и выходов
типы данных и типы содержимого.
Данные применимы для тестирования пайплайнов:
- test-ep10
### data11.json, data112.json
Аналогичны data.json и data2.json соответственно.
Данные применимы для тестирования пайплайнов:
- test-ep11
### Тестовые данные
Файл some_data.csv можно использовать в качестве тестового файлового входа
(файл может быть загружен через Files API).
## Запросы
### Старт триала
curl -X POST https://<host>/pu-user1-pa-app2/pipelines/test-ep6/trials \
-d @./data/data.json -H "Content-Type: application/json" -u "developer:<pwd>"
### Добавить условие статуса
curl -X POST https://<host>/pu-user1-pa--app2/pipelines/test-ep6/trials/<tracking-id>/status/conditions \
-d @./data/status-condition.json -H "Content-Type: application/json" -u "developer:<pwd>"
### Получить триалы
Один:
url -X GET https://<host>/pu-user1-pa-app2/trials/6bc5dfee-aeae-4269-8982-abf0fcfa3c65 \
-u "developer:<pwd>"
Все триалы пайплайна:
curl -X GET https://<host>/pu-user1-pa-app2/pipelines/test-ep6/trials \
-u "developer:<pwd>"
Все триалы пользователя:
curl -X GET https://<host>/pu-user1-pa-app2/trials \
-u "developer:<pwd>"
### Получить пайплайны
curl -X GET https://<host>/pu-user1-pa-app2/pipelines/test-ep6 \
-u "developer:<pwd>"
curl -X GET https://<host>/pu-user1-pa-app2/pipelines/test-ep6/version \
-u "developer:<pwd>"
curl -X GET https://<host>/pu-user1-pa-app2/pipelines \
-u "developer:<pwd>"
### Загрузка файла some-data.csv (при необходимости)
curl -X PUT https://<host>/pu-user1-pa-app2/files/test-app2-user-data/test-group21/file22 \
-u "developer:<pwd>"
curl -X PUT -d @./data/some_data.csv "<presigned put url>"
### OIDC аутентификация
Получить токен для OIDC аутентификации:
curl -L -X POST https://<host>/keycloak/realms/master/protocol/openid-connect/token \
--data-urlencode 'client_id=dev-multi-auth' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test-multi-auth' \
--data-urlencode 'password=<password>'
dev-multi-auth - имя клиента Keycloak, test-multi-auth - имя пользователя.
Использовать токен в запросах:
(например, для получения списка пайплайнов)
curl -X GET https://<host>/pu-user1-pa-app2/pipelines \
-L \
-H "Authorization: Bearer <token>"