Some checks failed
Deploy on push / deploy (push) Failing after 3m6s
### 🚨 Исправлено - **Удалено поле 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 проверок - Правильная изоляция тестовых данных через отдельную БД - Корректная работа с системой ролей и правами
40 lines
2.1 KiB
Python
40 lines
2.1 KiB
Python
"""
|
||
Тест для отладки фикстуры 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("✅ Сообщество создано и работает")
|