unip-controller/tests/integration/requests/app2/readme.md
2025-04-15 20:56:15 +03:00

163 lines
No EOL
5.8 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.

---
**Система**: Единая библиотека, Центр ИИ НИУ ВШЭ
**Модуль**: Тесты
**Авторы**: Полежаев В.А., Хританков А.С.
**Дата создания**: 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>"