Files
core/tests/test_fixture_debug.py
Untone 4d42e01bd0
Some checks failed
Deploy on push / deploy (push) Failing after 3m6s
[0.9.13] - 2025-08-27
### 🚨 Исправлено
- **Удалено поле username из модели Author**: Поле `username` больше не является частью модели `Author`
  - Убрано свойство `@property def username` из `orm/author.py`
  - Обновлены все сервисы для использования `email` или `slug` вместо `username`
  - Исправлены резолверы для исключения `username` при обработке данных автора
  - Поле `username` теперь используется только в JWT токенах для совместимости

### 🧪 Исправлено
- **E2E тесты админ-панели**: Полностью переработаны E2E тесты для работы с реальным API
  - Тесты теперь делают реальные HTTP запросы к GraphQL API
  - Бэкенд для тестов использует выделенную тестовую БД (`test_e2e.db`)
  - Создан фикстура `backend_server` для запуска тестового сервера
  - Добавлен фикстура `create_test_users_in_backend_db` для регистрации пользователей через API
  - Убраны несуществующие GraphQL запросы (`get_community_stats`)
  - Тесты корректно работают с системой ролей и правами администратора

### �� Техническое
- **Рефакторинг аутентификации**: Упрощена логика работы с пользователями
  - Убраны зависимости от несуществующих полей в ORM моделях
  - Обновлены сервисы аутентификации для корректной работы без `username`
  - Исправлены все места использования `username` в коде
- **Улучшена тестовая инфраструктура**:
  - Тесты теперь используют реальный HTTP API вместо прямых DB проверок
  - Правильная изоляция тестовых данных через отдельную БД
  - Корректная работа с системой ролей и правами
2025-08-27 12:15:01 +03:00

40 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Тест для отладки фикстуры test_users
"""
def test_test_users_fixture(db_session, test_users):
"""Тест фикстуры test_users"""
print(f"🔍 Создано пользователей: {len(test_users)}")
for i, user in enumerate(test_users):
print(f"👤 Пользователь {i}: ID={user.id}, email={user.email}, name={user.name}")
# Проверяем, что пользователь сохранен в базе
from orm.author import Author
db_user = db_session.query(Author).where(Author.id == user.id).first()
assert db_user is not None, f"Пользователь {user.id} не найден в базе"
print(f"✅ Пользователь {user.id} найден в базе")
# Проверяем пароль
try:
user.set_password("test_password")
assert user.verify_password("test_password"), f"Пароль для пользователя {user.id} не работает"
print(f"✅ Пароль для пользователя {user.id} работает")
except Exception as e:
print(f"❌ Ошибка с паролем для пользователя {user.id}: {e}")
print("Все пользователи созданы и работают")
def test_test_community_fixture(db_session, test_community):
"""Тест фикстуры test_community"""
print(f"🏘️ Сообщество: ID={test_community.id}, name={test_community.name}, slug={test_community.slug}")
# Проверяем, что сообщество сохранено в базе
from orm.community import Community
db_community = db_session.query(Community).where(Community.id == test_community.id).first()
assert db_community is not None, f"Сообщество {test_community.id} не найдено в базе"
print(f"✅ Сообщество {test_community.id} найдено в базе")
print("✅ Сообщество создано и работает")