35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import pytest
|
|
from services.auth import AuthService
|
|
from services.db import local_session
|
|
from auth.orm import Author
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_ensure_user_has_reader_role():
|
|
auth_service = AuthService()
|
|
|
|
# Создаем тестового пользователя без роли reader
|
|
with local_session() as session:
|
|
test_author = Author(
|
|
email="test_reader_role@example.com",
|
|
slug="test_reader_role",
|
|
password="test_password"
|
|
)
|
|
session.add(test_author)
|
|
session.commit()
|
|
user_id = test_author.id
|
|
|
|
# Проверяем, что роль reader добавляется
|
|
result = await auth_service.ensure_user_has_reader_role(user_id)
|
|
assert result is True
|
|
|
|
# Проверяем, что при повторном вызове возвращается True
|
|
result = await auth_service.ensure_user_has_reader_role(user_id)
|
|
assert result is True
|
|
|
|
# Очищаем тестовые данные
|
|
with local_session() as session:
|
|
test_author = session.query(Author).filter_by(id=user_id).first()
|
|
if test_author:
|
|
session.delete(test_author)
|
|
session.commit()
|