Сервис на FastAPI для хранения и отображения направленных ациклических графов (DAG) (далее - сервис) с хранением данных в PostgreSQL.
Бот мониторинга API - https://t.me/dag_service_bot
За более подробной документацией предлагаю обратиться к интернет ресурсу https://nikitos.tech/dag/docs
Есть сервис написанный на FastAPI, которые принимает HTTP запросы на endpoints указанные в документации. Операции с методом POST записываются в БД PostgreSQL. Приложение развернуто на prod среде на удаленном сервере. Настроен CI конвеер для доставки изменений.
Есть два варианта.
wget https://nikitos.tech/dag/scripts/test.sh && \
chmod +x test.sh && \
sudo ./test.sh git clone https://github.com/bakhilin/dag-service.git cd dag-service && docker compose up -d --buildБолее подробно можно ознакомиться здесь https://nikitos.tech/dag/docs/quickstart.html
В Dockerfile есть инструкция которая прогоняет тесты и выводит тестовое покрытие, но можно ит локально, но нужно установить poetry.
poetry install poetry run pytest --cov=app --cov-report=term-missingСуществуют разные методы тестирования. В нашем случае мы проводим UNIT тестирование используя разные уровни доступа к программному модулю.
test_create_graph_success - Проверяет, что граф создается с корректными узлами и ребрами
test_get_full_graph - Проверяет корректность возвращаемой структуры данных
test_get_full_graph_not_found - Тестирует обработку ошибки для несуществующего графа
test_get_graph / test_get_graph_not_found - Проверяют контракт метода (возврат GraphModel или None)
test_get_adjacency_list / test_get_reverse_adjacency_list - Проверяют соответствие ожидаемому формату ответа
test_delete_node_success / test_delete_node_not_found - Тестируют публичное поведение метода (успех/неудача)
test_is_dag_acyclic / test_is_dag_cyclic - Проверяют алгоритм определения циклов в графе.


