- Reformatted function signatures in `organization_service.py` and `task_service.py` for better alignment. - Updated import statements across multiple files for consistency and organization. - Enhanced test files by improving formatting and ensuring consistent use of async session factories. - Added type hints and improved type safety in various service and test files. - Adjusted `pyproject.toml` to include configuration for isort, mypy, and ruff for better code quality checks. - Cleaned up unused imports and organized existing ones in several test files.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## Стек и особенности
|
||||
|
||||
- Python 3.10+, FastAPI, SQLAlchemy Async ORM, Alembic.
|
||||
- Python 3.14, FastAPI, SQLAlchemy Async ORM, Alembic.
|
||||
- Pydantic Settings для конфигурации, JWT access/refresh токены, кеш аналитики в Redis.
|
||||
- Frontend: Vite + React + TypeScript (см. `frontend/`).
|
||||
- Докер-окружение для разработки (`docker-compose-dev.yml`) и деплоя (`docker-compose-ci.yml`).
|
||||
@@ -80,10 +80,10 @@ cp .env.example .env
|
||||
uv sync
|
||||
|
||||
# 3. Применяем миграции
|
||||
uv run alembic upgrade head
|
||||
uvx alembic upgrade head
|
||||
|
||||
# 4. Запускаем API
|
||||
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||||
uvx uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
PostgreSQL/Redis можно поднять вручную или командой `docker compose -f docker-compose-dev.yml up postgres redis -d`.
|
||||
@@ -147,14 +147,23 @@ docker compose -f docker-compose-dev.yml up --build -d
|
||||
Все тесты находятся в каталоге `tests/` (unit на бизнес-правила и интеграционные сценарии API). Запуск:
|
||||
|
||||
```bash
|
||||
uv run pytest
|
||||
uvx pytest
|
||||
```
|
||||
|
||||
Полезные варианты:
|
||||
|
||||
- Запустить только юнит-тесты сервисов: `uv run pytest tests/services -k service`.
|
||||
- Запустить конкретный сценарий API: `uv run pytest tests/api/v1/test_deals.py -k won`.
|
||||
- Запустить только юнит-тесты сервисов: `uvx pytest tests/services -k service`.
|
||||
- Запустить конкретный сценарий API: `uvx pytest tests/api/v1/test_deals.py -k won`.
|
||||
|
||||
Перед деплоем рекомендуется прогонять миграции на чистой БД и выполнять `uv run pytest` для проверки правил ролей/стадий.
|
||||
Перед деплоем рекомендуется прогонять миграции на чистой БД и выполнять `uvx pytest` для проверки правил ролей/стадий.
|
||||
|
||||
## Линтинг и статический анализ
|
||||
|
||||
- `uvx ruff check app tests` — основной линтер (PEP8, сортировка импортов, дополнительные правила).
|
||||
- `uvx ruff format app tests` — автоформатирование (аналог black) для единообразного стиля.
|
||||
- `uvx isort .` — отдельная сортировка импортов (профиль `black`).
|
||||
- `uvx mypy app services tests` — статическая проверка типов (строгий режим + плагин pydantic).
|
||||
|
||||
В CI/PR рекомендуется запускать команды именно в этом порядке, чтобы быстрее находить проблемы.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user