Refactor code for improved readability and consistency
Test / test (push) Successful in 15s

- 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:
Artem Kashaev
2025-12-01 16:18:03 +05:00
parent eecb74c523
commit 5fcb574aca
62 changed files with 765 additions and 476 deletions
+16 -7
View File
@@ -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 рекомендуется запускать команды именно в этом порядке, чтобы быстрее находить проблемы.