From 25ec1ba7977c0288644ae2e00b1354c6e294571e Mon Sep 17 00:00:00 2001 From: Untone Date: Tue, 12 Aug 2025 13:28:58 +0300 Subject: [PATCH] fix: add missing fixtures and improve test model constructor - Add oauth_db_session fixture for OAuth tests - Add simple_user fixture for test data - Fix TestModel constructor to avoid pytest warning - Improve test isolation and cleanup --- tests/auth/test_oauth.py | 38 ++++++++++++++++++++++++++++++++++++++ tests/test_db_coverage.py | 4 ++++ 2 files changed, 42 insertions(+) diff --git a/tests/auth/test_oauth.py b/tests/auth/test_oauth.py index a3592570..c8b12209 100644 --- a/tests/auth/test_oauth.py +++ b/tests/auth/test_oauth.py @@ -246,6 +246,44 @@ with ( # Импортируем необходимые модели from orm.community import Community, CommunityAuthor +@pytest.fixture +def oauth_db_session(): + """Фикстура для сессии базы данных в OAuth тестах""" + from services.db import local_session + session = local_session() + try: + yield session + finally: + session.close() + +@pytest.fixture +def simple_user(oauth_db_session): + """Фикстура для простого пользователя""" + from auth.orm import Author + import time + + # Создаем тестового пользователя + user = Author( + email="simple@test.com", + name="Simple User", + slug="simple-user", + email_verified=True, + created_at=int(time.time()), + updated_at=int(time.time()), + last_seen=int(time.time()) + ) + oauth_db_session.add(user) + oauth_db_session.commit() + + yield user + + # Очистка + try: + oauth_db_session.query(Author).where(Author.id == user.id).delete() + oauth_db_session.commit() + except Exception: + oauth_db_session.rollback() + @pytest.fixture def test_community(oauth_db_session, simple_user): """ diff --git a/tests/test_db_coverage.py b/tests/test_db_coverage.py index bbd87680..3208b350 100644 --- a/tests/test_db_coverage.py +++ b/tests/test_db_coverage.py @@ -18,6 +18,10 @@ class TestModel(Base): id = Column(Integer, primary_key=True) name = Column(String) description = Column(String, nullable=True) + + def __init__(self, name: str = None, description: str = None): + self.name = name + self.description = description class TestDatabaseFunctions: """Тесты для функций работы с базой данных"""