Untone d6d88133bd
Some checks failed
Deploy on push / deploy (push) Has been cancelled
## [0.9.6] - 2025-08-12
### 🚀 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
- **Улучшенная диагностика**: Добавлены подробные логи для отслеживания проблем в тестах
2025-08-12 16:40:34 +03:00
2025-08-12 13:04:12 +03:00
2025-07-25 01:04:15 +03:00
2025-08-01 04:51:06 +03:00
2025-07-31 19:31:51 +03:00
2025-08-12 16:40:34 +03:00
2025-08-12 16:40:34 +03:00
2025-08-01 04:51:06 +03:00
2025-08-01 05:17:01 +03:00
2025-08-01 04:51:06 +03:00
2025-08-12 16:40:34 +03:00
2025-07-31 18:55:59 +03:00
2025-07-31 18:55:59 +03:00
..
2024-11-14 14:00:33 +03:00
2025-08-12 14:33:43 +03:00
2024-02-21 23:12:47 +03:00
2025-07-18 16:32:35 +03:00
2025-08-12 16:40:34 +03:00
2025-07-02 22:30:21 +03:00
2025-08-12 13:12:39 +03:00
2025-07-02 22:30:21 +03:00
2025-06-19 11:28:48 +03:00
2025-08-01 04:51:06 +03:00
2025-07-31 18:55:59 +03:00
2025-07-25 12:26:31 +03:00
2025-08-12 14:03:56 +03:00
2025-08-12 13:12:39 +03:00
2025-08-01 04:51:06 +03:00
2025-07-02 22:30:21 +03:00
2025-08-12 13:19:55 +03:00
2025-07-25 12:26:31 +03:00

Discours Core

Core backend for Discours.io platform

Requirements

  • Python 3.11+
  • uv (Python package manager)

Installation

Install uv

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Setup project

# Clone repository
git clone <repository-url>
cd discours-core

# Install dependencies
uv sync --dev

# Activate virtual environment
source .venv/bin/activate  # Linux/macOS
# or
.venv\Scripts\activate     # Windows

Development

Install dependencies

# Install all dependencies (including dev)
uv sync --dev

# Install only production dependencies
uv sync

# Install specific group
uv sync --group test
uv sync --group lint

Run tests

# Run all tests
uv run pytest

# Run specific test file
uv run pytest tests/test_auth_fixes.py

# Run with coverage
uv run pytest --cov=services,utils,orm,resolvers

Code quality

# Run ruff linter
uv run ruff check .

# Run ruff formatter
uv run ruff format .

# Run mypy type checker
uv run mypy .

Run application

# Run main application
uv run python main.py

# Run development server
uv run python dev.py

Project structure

discours-core/
├── auth/           # Authentication and authorization
├── cache/          # Caching system
├── orm/            # Database models
├── resolvers/      # GraphQL resolvers
├── services/       # Business logic services
├── utils/          # Utility functions
├── schema/         # GraphQL schema
├── tests/          # Test suite
└── docs/           # Documentation

Configuration

The project uses pyproject.toml for configuration:

  • Dependencies: Defined in [project.dependencies] and [project.optional-dependencies]
  • Build system: Uses hatchling for building packages
  • Code quality: Configured with ruff and mypy
  • Testing: Configured with pytest

CI/CD

The project includes GitHub Actions workflows for:

  • Automated testing
  • Code quality checks
  • Deployment to staging and production servers

License

MIT License

Description
ядро платформы
Readme MIT 12 MiB
Languages
Python 74.6%
TypeScript 19.2%
CSS 6.1%