Files
core/tests/test_fixture_debug.py

40 lines
2.1 KiB
Python
Raw Normal View History

[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
"""
Тест для отладки фикстуры 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("✅ Сообщество создано и работает")