aimclub / FEDOT.Web

Graphic tool for the automated evolutionary design of composite models
https://fedot.onti.actcognitive.org
BSD 3-Clause "New" or "Revised" License
37 stars 5 forks source link

Dummy endpoints for metadata and history #7

Closed nicl-nno closed 3 years ago

nicl-nno commented 3 years ago

Добавил endpoint-ы, иллюстрирующие обсужденные сегодня моменты:

meta/model_types/- для типов моделей (берутся из фреймворка) data/datasets/all - для датасетов (захардкожены) composer/history/ - для истории композера (берется из статического json-a) /chains/ - полная структура модели (берется из статического json-a) /chains/add/{graph_structure} - заглушка для создания цепочки на основе присланного с фронтенда описания топологии (с новым UID или существующим, если уже есть цепочка с аналогичной структурой)

Структуру проекта никак не менял пока, но явно это нужно будет сделать. swagger-описание не добавлял - как это удобнее делать, есть какой-то инструмент?

pep8speaks commented 3 years ago

Hello @nicl-nno! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

Line 7:80: E501 line too long (85 > 79 characters) Line 12:80: E501 line too long (89 > 79 characters)

Comment last updated at 2021-02-04 17:20:25 UTC
nicl-nno commented 3 years ago

Перенс ендпоинты в новую структуру.

J3FALL commented 3 years ago

Тесты тоже бы не помешали на новый код

nicl-nno commented 3 years ago

Тесты тоже бы не помешали на новый код

Только на тот, что в service? Или будем тестить сами эндпоинты?

J3FALL commented 3 years ago

Тесты тоже бы не помешали на новый код

Только на тот, что в service? Или будем тестить сами эндпоинты?

По-хорошему, и на то, и на другое.

nicl-nno commented 3 years ago

По-хорошему, и на то, и на другое.

Предлагаю тогда на первое время ограничиться тестированием эндоинтов - чтобы точно покрыть всю внешнюю функциональность, но и при этом чуть сэкономить времени. А сервисы уже попозже, когда всё установится.

Но тогда мне нужен 1 пример такого теста, чтоб было понятнее, как должно выглядеть.

J3FALL commented 3 years ago

Предлагаю тогда на первое время ограничиться тестированием эндоинтов - чтобы точно покрыть всю внешнюю функциональность, но и при этом чуть сэкономить времени. А сервисы уже попозже, когда всё установится.

Но тогда мне нужен 1 пример такого теста, чтоб было понятнее, как должно выглядеть.

В исходной статье есть пример, как можно тестить отдельные слои, в т.ч. и контроллеры: http://alanpryorjr.com/2019-05-20-flask-api-example/

Вот тут пример, как можно замокать сервис и тестить именно котроллер: image Тут flask_client прямо имитирует запросы к api. Вот тут еще есть полезные советы, что-то схожее: https://flask.palletsprojects.com/en/1.1.x/testing/ Это как один из вариантов. Есть альтернативный вариант - в тесте делать setup, в котором создается полноценный инстанс flask-сервера (через нашу функцию create_app c ключом test) и в тестах уже делаются запросы к эндпоинтам через requests.

nicl-nno commented 3 years ago

Есть альтернативный вариант - в тесте делать setup, в котором создается полноценный инстанс flask-сервера (через нашу функцию create_app c ключом test) и в тестах уже делаются запросы к эндпоинтам через requests.

Ну мне он как-то больше нравится, выглядит как меньше кода надо писать. Давай тогда в след. PR-е так и сделаю. Контроллеры со сложной логикой тоже можно отдельно протестить, но пока вроде таких нет.

J3FALL commented 3 years ago

Есть альтернативный вариант - в тесте делать setup, в котором создается полноценный инстанс flask-сервера (через нашу функцию create_app c ключом test) и в тестах уже делаются запросы к эндпоинтам через requests.

Ну мне он как-то больше нравится, выглядит как меньше кода надо писать. Давай тогда в след. PR-е так и сделаю. Контроллеры со сложной логикой тоже можно отдельно протестить, но пока вроде таких нет.

Хорошо