Some checks failed
Deploy on push / deploy (push) Has been cancelled
### 🚀 CI/CD и E2E тестирование - **Исправлен Playwright headless режим в CI/CD**: Добавлена переменная окружения `PLAYWRIGHT_HEADLESS=true` для корректного запуска E2E тестов в CI/CD окружении без XServer - **Автоматическое переключение режимов**: Все Playwright тесты автоматически переключаются между headed (локально) и headless (CI/CD) режимами - **Установка браузеров Playwright в CI/CD**: Добавлен шаг для установки необходимых браузеров в CI/CD окружении - **Сборка фронтенда в CI/CD**: Добавлены шаги для установки Node.js зависимостей и сборки фронтенда перед запуском E2E тестов - **Условная загрузка статических файлов**: Бэкенд корректно обрабатывает отсутствие директории `dist/assets` в CI/CD окружении ### 🔧 Исправления тестов - **Исправлена ошибка pytest с TestModel**: Убран `__init__` конструктор из тестового класса `TestModel` в `test_db_coverage.py` - **Централизованная конфигурация URL**: Создана фикстура `frontend_url` с автоматическим определением доступности фронтенда - **Автоматическое переключение портов**: Тесты автоматически используют порт 8000 (бэкенд) если фронтенд на порту 3000 недоступен - **Исправлены все localhost:3000 в тестах**: Все тесты теперь используют динамическую фикстуру вместо жестко закодированных URL ### 🐛 Критические исправления - **Устранена бесконечная рекурсия в CommunityAuthor**: Исправлены методы `get_users_with_role`, `get_community_stats` и `get_user_communities_with_roles` - **Исправлено зависание CI/CD на 29% тестов**: Проблема была вызвана рекурсивными вызовами в ORM методах - **Упрощены тесты кастомных ролей**: Тесты теперь работают изолированно через Redis без зависимости от GraphQL слоя ### 📱 Админ-панель и фронтенд - **E2E тесты работают через бэкенд**: В CI/CD фронтенд обслуживается бэкендом на порту 8000 - **Автоматическая адаптация тестов**: Один код работает везде - локально и в CI/CD - **Улучшенная диагностика**: Добавлены подробные логи для отслеживания проблем в тестах
Документация Discours Core v0.9.6
📚 Быстрый старт
Discours Core - это GraphQL API бэкенд для системы управления контентом с реакциями, рейтингами и темами.
🚀 Запуск
# Подготовка окружения
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.dev.txt
# Сертификаты для HTTPS
mkcert -install
mkcert localhost
# Запуск сервера
python -m granian main:app --interface asgi
📊 Статус проекта
- Версия: 0.9.6
- Тесты: 344/344 проходят (включая E2E Playwright тесты) ✅
- Покрытие: 90%
- Python: 3.12+
- База данных: PostgreSQL 16.1
- Кеш: Redis 6.2.0
- E2E тесты: Playwright с автоматическим headless режимом
📖 Документация
🔧 Основные компоненты
- API Documentation - GraphQL API и резолверы
- Authentication - Система авторизации и OAuth
- RBAC System - Роли и права доступа
- Caching System - Redis схема и кеширование
- Admin Panel - Админ-панель управления
🛠️ Разработка
- Features - Обзор возможностей
- Testing - Тестирование и покрытие
- Security - Безопасность и конфигурация
🔍 Текущие проблемы
Тестирование
- Ошибки в тестах кастомных ролей:
test_custom_roles.py - Проблемы с JWT:
test_token_storage_fix.py - E2E тесты браузера: ✅ Исправлены - добавлен автоматический headless режим для CI/CD
Git статус
- 48 измененных файлов в рабочей директории
- 5 новых файлов (включая тесты и роуты)
- 3 файла готовы к коммиту
🎯 Следующие шаги
- Исправить тесты - Устранить ошибки в тестах кастомных ролей и JWT
- Настроить E2E - Исправить браузерные тесты
- Завершить RBAC - Доработать систему кастомных ролей
- Обновить docs - Синхронизировать документацию
- Подготовить релиз - Зафиксировать изменения
🔗 Полезные команды
# Линтинг и форматирование
biome check . --write
ruff check . --fix --select I
ruff format . --line-length=120
# Тестирование
pytest
# Проверка типов
mypy .
# Запуск в dev режиме
python -m granian main:app --interface asgi
Discours Core - открытый проект под MIT лицензией. Подробнее о вкладе