[0.9.12] - 2025-08-26
Some checks failed
Deploy on push / deploy (push) Failing after 2m54s

### 🚨 Исправлено
- **Лимит топиков API**: Убрано жесткое ограничение в 100 топиков, теперь поддерживается до 1000 топиков
  - Обновлен лимит функции `get_topics_with_stats` с 100 до 1000
  - Обновлен лимит по умолчанию резолвера `get_topics_by_community` с 100 до 1000
  - Это решает проблему, когда API искусственно ограничивал получение топиков

### 🧪 Исправлено
- **Тест-сьют**: Исправлены все падающие тесты для достижения 100% прохождения
  - Исправлено утверждение теста уведомлений для невалидных действий (fallback к CREATE)
  - Исправлены тесты публикации черновиков путем добавления обязательных топиков
  - Исправлен контекст авторизации в тестах черновиков (добавлены роли и токен)
  - Установлены браузеры Playwright для решения проблем с браузерными тестами
  - Все тесты теперь проходят: 361 пройден, 31 пропущен, 0 провален

### 🔧 Техническое
- Улучшены тестовые фикстуры с правильным созданием топиков для черновиков
- Улучшено тестовое мокирование для GraphQL контекста с требуемыми данными авторизации
- Добавлена правильная обработка ошибок для требований публикации черновиков
This commit is contained in:
2025-08-26 13:28:28 +03:00
parent 94af896c2d
commit 2a6fcc3f45
5 changed files with 88 additions and 24 deletions

View File

@@ -55,7 +55,7 @@ async def get_all_topics() -> list[Any]:
# Вспомогательная функция для получения тем со статистикой с пагинацией
async def get_topics_with_stats(
limit: int = 100, offset: int = 0, community_id: int | None = None, by: str | None = None
limit: int = 1000, offset: int = 0, community_id: int | None = None, by: str | None = None
) -> dict[str, Any]:
"""
Получает темы со статистикой с пагинацией.
@@ -74,7 +74,7 @@ async def get_topics_with_stats(
dict: Объект с пагинированным списком тем и метаданными пагинации
"""
# Нормализуем параметры
limit = max(1, min(100, limit or 10)) # Ограничиваем количество записей от 1 до 100
limit = max(1, min(1000, limit or 10)) # Ограничиваем количество записей от 1 до 1000
offset = max(0, offset or 0) # Смещение не может быть отрицательным
# Формируем ключ кеша с помощью универсальной функции
@@ -350,7 +350,7 @@ async def get_topics_all(_: None, _info: GraphQLResolveInfo) -> list[Any]:
# Запрос на получение тем по сообществу
@query.field("get_topics_by_community")
async def get_topics_by_community(
_: None, _info: GraphQLResolveInfo, community_id: int, limit: int = 100, offset: int = 0, by: str | None = None
_: None, _info: GraphQLResolveInfo, community_id: int, limit: int = 1000, offset: int = 0, by: str | None = None
) -> list[Any]:
"""
Получает список тем, принадлежащих указанному сообществу с пагинацией и статистикой.