### 🚨 Исправлено - **Удалено поле 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 проверок - Правильная изоляция тестовых данных через отдельную БД - Корректная работа с системой ролей и правами
This commit is contained in:
39
tests/test_fixture_debug.py
Normal file
39
tests/test_fixture_debug.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""
|
||||
Тест для отладки фикстуры 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("✅ Сообщество создано и работает")
|
||||
Reference in New Issue
Block a user