Closed nicl-nno closed 3 years ago
Hello @nicl-nno! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
fedot_app/basic_functions.py
:Line 7:80: E501 line too long (85 > 79 characters) Line 12:80: E501 line too long (89 > 79 characters)
Перенс ендпоинты в новую структуру.
Тесты тоже бы не помешали на новый код
Тесты тоже бы не помешали на новый код
Только на тот, что в service? Или будем тестить сами эндпоинты?
Тесты тоже бы не помешали на новый код
Только на тот, что в service? Или будем тестить сами эндпоинты?
По-хорошему, и на то, и на другое.
По-хорошему, и на то, и на другое.
Предлагаю тогда на первое время ограничиться тестированием эндоинтов - чтобы точно покрыть всю внешнюю функциональность, но и при этом чуть сэкономить времени. А сервисы уже попозже, когда всё установится.
Но тогда мне нужен 1 пример такого теста, чтоб было понятнее, как должно выглядеть.
Предлагаю тогда на первое время ограничиться тестированием эндоинтов - чтобы точно покрыть всю внешнюю функциональность, но и при этом чуть сэкономить времени. А сервисы уже попозже, когда всё установится.
Но тогда мне нужен 1 пример такого теста, чтоб было понятнее, как должно выглядеть.
В исходной статье есть пример, как можно тестить отдельные слои, в т.ч. и контроллеры: http://alanpryorjr.com/2019-05-20-flask-api-example/
Вот тут пример, как можно замокать сервис и тестить именно котроллер: Тут flask_client прямо имитирует запросы к api. Вот тут еще есть полезные советы, что-то схожее: https://flask.palletsprojects.com/en/1.1.x/testing/ Это как один из вариантов. Есть альтернативный вариант - в тесте делать setup, в котором создается полноценный инстанс flask-сервера (через нашу функцию create_app c ключом test) и в тестах уже делаются запросы к эндпоинтам через requests.
Есть альтернативный вариант - в тесте делать setup, в котором создается полноценный инстанс flask-сервера (через нашу функцию create_app c ключом test) и в тестах уже делаются запросы к эндпоинтам через requests.
Ну мне он как-то больше нравится, выглядит как меньше кода надо писать. Давай тогда в след. PR-е так и сделаю. Контроллеры со сложной логикой тоже можно отдельно протестить, но пока вроде таких нет.
Есть альтернативный вариант - в тесте делать setup, в котором создается полноценный инстанс flask-сервера (через нашу функцию create_app c ключом test) и в тестах уже делаются запросы к эндпоинтам через requests.
Ну мне он как-то больше нравится, выглядит как меньше кода надо писать. Давай тогда в след. PR-е так и сделаю. Контроллеры со сложной логикой тоже можно отдельно протестить, но пока вроде таких нет.
Хорошо
Добавил endpoint-ы, иллюстрирующие обсужденные сегодня моменты:
meta/model_types/- для типов моделей (берутся из фреймворка)
data/datasets/all - для датасетов (захардкожены)
composer/history/ - для истории композера (берется из статического json-a)
/chains/ - полная структура модели (берется из статического json-a)
/chains/add/{graph_structure} - заглушка для создания цепочки на основе присланного с фронтенда описания топологии (с новым UID или существующим, если уже есть цепочка с аналогичной структурой)
Структуру проекта никак не менял пока, но явно это нужно будет сделать. swagger-описание не добавлял - как это удобнее делать, есть какой-то инструмент?