- Add Model Mixins: TimestampMixin, SoftDeleteMixin, AuditMixin, etc. - Add Base Services: BaseService, BulkOperationsMixin, QueryOptimizerMixin - Add Base ViewSets with bulk operations - Add BackgroundJob model for Celery task tracking - Add BaseAppCommand for management commands - Add permissions, pagination, filters, cache, logging - Migrate tests to factory_boy + faker - Add CHANGELOG.md - 297 tests passing
150 lines
5.3 KiB
Makefile
150 lines
5.3 KiB
Makefile
# Makefile для удобной работы с проектом
|
||
|
||
.PHONY: help install dev-up dev-down test lint format migrate createsuperuser shell
|
||
|
||
help:
|
||
@echo "Доступные команды:"
|
||
@echo ""
|
||
@echo "🔧 Установка и настройка:"
|
||
@echo " make install - Установка зависимостей"
|
||
@echo ""
|
||
@echo "🐳 Docker управление:"
|
||
@echo " make dev-up - Запуск разработческого окружения (Docker)"
|
||
@echo " make dev-down - Остановка разработческого окружения"
|
||
@echo " make logs - Просмотр логов (Docker)"
|
||
@echo ""
|
||
@echo "🧪 Тестирование:"
|
||
@echo " make test - Запуск тестов (по умолчанию все)"
|
||
|
||
@echo " Примеры:"
|
||
@echo " make test # Все тесты"
|
||
@echo " make test TARGET=user # Только user app"
|
||
@echo " make test TARGET=test_models # Только модели"
|
||
@echo ""
|
||
@echo "🔍 Качество кода:"
|
||
@echo " make lint - Проверка кода линтерами"
|
||
@echo " make format - Форматирование кода"
|
||
@echo " make type-check - Проверка типов"
|
||
@echo " make security-check - Проверка безопасности"
|
||
@echo " make pre-commit - Запуск pre-commit hooks"
|
||
@echo ""
|
||
@echo "🗄️ База данных:"
|
||
@echo " make migrate - Выполнение миграций Django"
|
||
@echo " make createsuperuser - Создание суперпользователя"
|
||
@echo ""
|
||
@echo "🛠️ Утилиты:"
|
||
@echo " make shell - Запуск Django shell"
|
||
@echo " make setup-dev - Настройка окружения разработки"
|
||
@echo " make clean - Очистка временных файлов"
|
||
|
||
install:
|
||
uv pip install -r requirements.txt
|
||
uv pip install -r requirements-dev.txt
|
||
|
||
dev-up:
|
||
docker-compose up -d
|
||
@echo "Сервисы запущены. Приложение доступно по адресу: http://localhost:8000"
|
||
|
||
dev-down:
|
||
docker-compose down
|
||
|
||
# Универсальная команда для тестирования с поддержкой аргументов
|
||
# Использование:
|
||
# make test # Все тесты
|
||
# make test TARGET=user # Тесты user app
|
||
# make test TARGET=models # Тесты моделей
|
||
# make test TARGET=views # Тесты представлений
|
||
# make test TARGET=serializers # Тесты сериализаторов
|
||
# make test TARGET=services # Тесты сервисов
|
||
test:
|
||
@if [ "$(TARGET)" ]; then \
|
||
echo "🧪 Запуск тестов: $(TARGET)"; \
|
||
python run_tests_simple.py $(TARGET); \
|
||
else \
|
||
echo "🧪 Запуск всех тестов..."; \
|
||
python run_tests_simple.py; \
|
||
fi
|
||
|
||
lint:
|
||
@echo "🔍 Проверка кода линтерами..."
|
||
ruff check src/
|
||
black --check src/
|
||
isort --check-only src/
|
||
@echo "✅ Линтинг завершен"
|
||
|
||
format:
|
||
@echo "🎨 Форматирование кода..."
|
||
black src/
|
||
isort src/
|
||
ruff check --fix src/
|
||
@echo "✅ Форматирование завершено"
|
||
|
||
migrate:
|
||
@echo "🗄️ Выполнение миграций..."
|
||
cd src && python manage.py makemigrations
|
||
cd src && python manage.py migrate
|
||
|
||
createsuperuser:
|
||
@echo "👤 Создание суперпользователя..."
|
||
cd src && python manage.py createsuperuser
|
||
|
||
shell:
|
||
@echo "🐚 Запуск Django shell..."
|
||
cd src && python manage.py shell
|
||
|
||
logs:
|
||
@echo "📋 Просмотр логов..."
|
||
docker-compose logs -f
|
||
|
||
# Дополнительные команды для тестирования
|
||
test-cov:
|
||
@echo "🧪 Запуск тестов с покрытием..."
|
||
python run_tests_simple.py --coverage
|
||
|
||
test-fast:
|
||
@echo "🚀 Быстрые тесты (без медленных)..."
|
||
python run_tests_simple.py --fast
|
||
|
||
test-parallel:
|
||
@echo "⚡ Параллельный запуск тестов..."
|
||
python run_tests_simple.py --parallel=auto
|
||
|
||
test-failfast:
|
||
@echo "❌ Тесты с остановкой при первой ошибке..."
|
||
python run_tests_simple.py --failfast
|
||
|
||
# Дополнительные команды для качества кода
|
||
type-check:
|
||
@echo "🔍 Проверка типов с mypy..."
|
||
mypy src/
|
||
|
||
security-check:
|
||
@echo "🔒 Проверка безопасности..."
|
||
bandit -r src/ -f json -o bandit-report.json || bandit -r src/
|
||
|
||
pre-commit:
|
||
@echo "🔧 Запуск pre-commit hooks..."
|
||
pre-commit run --all-files
|
||
|
||
# Установка и настройка
|
||
setup-dev:
|
||
@echo "⚙️ Настройка окружения разработки..."
|
||
pre-commit install
|
||
@echo "✅ Окружение настроено"
|
||
|
||
clean:
|
||
@echo "🧹 Очистка временных файлов..."
|
||
find . -type f -name "*.pyc" -delete
|
||
find . -type d -name "__pycache__" -delete
|
||
rm -rf *.log
|
||
rm -rf htmlcov/
|
||
rm -rf .coverage
|
||
rm -rf coverage.xml
|
||
rm -rf bandit-report.json
|
||
rm -rf .pytest_cache/
|
||
rm -rf .mypy_cache/
|
||
rm -rf tests/__pycache__/
|
||
rm -rf tests/apps/__pycache__/
|
||
rm -rf tests/apps/user/__pycache__/
|
||
@echo "✅ Очистка завершена"
|