gitverse new year логотип

flask-pytest

Форк
1

README.md

Flask + Pytest

Учебное приложение: API с использованием Flask, SQLAlchemy, Flask-SQLAlchemy, Pytest,

pytest-cov
, Factory Boy.

Структура директорий

  • 📁 app
    • 📄
      __init__.py
      : фабричная функция
      create_app()
      для создания инстанса приложения Flask.
    • 📄 clients.py: роуты для работы с клиентами.
    • 📄 parkings.py: роуты для работы с парковками.
    • 📄 client_parking.py: роуты для работы с логами событий парковки.
  • 📁 data: слой данных
    • 📄 models.py: модели таблиц SQLAlchemy.
    • 📄 clients.py: функции для работы с данными о клиентах в БД.
    • 📄 parkings.py: функции для работы с данными о парковках в БД.
    • 📄 client_parking.py: функции для работы с данными о событиях парковки в БД.
  • 📁 fake_data: "поддельный" слой данных, используется в юнит-тестах сервисного слоя. Имитирует функции из пакета
    data
    .
  • 📁 service: сервисный слой – бизнес-логика приложения
    • 📄 clients.py: сервисные функции для работы с клиентами.
    • 📄 parkings.py: сервисные функции для работы с парковками.
    • 📄 client_parking.py: основная бизнес-логика приложения тут – сервисные функции создания событий парковки и выезда с парковки.
  • 📁 tests
    • 📁 integration: интеграционные тесты API.
    • 📁 unit: юнит-тесты.
      • 📁 data: юнит-тесты слоя данных.
      • 📁 service: изолированные юнит-тесты сервисного слоя, проверяют работу бизнес-логики независимо от БД.
      • 📁 web: изолированные юнит-тесты API endpoints.
  • 📄 database.py: инициализация БД.
  • 📄 errors.py: кастомные исключения для обработки ошибок.
  • 📄 main.py: входная точка приложения.

Запуск приложения

python src/main.py
# или
docker compose up -d --build

Запуск тестов

pytest -v
# или
docker compose exec web pytest -v
# With coverage:
pytest -v --cov
# Coverage with HTML report (in ./htmlcov/ directory):
pytest -v --cov --cov-report html

Покрытие тестами: 100%.

Coverage Report

References

Описание

Учебное приложение: API с использованием Flask, SQLAlchemy, Flask-SQLAlchemy, Pytest, pytest-cov, Factory Boy.

Языки

Python

  • Makefile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.