Files
FabledCurator/tests/test_extensions_session.py

32 lines
842 B
Python

"""Unit: the shared engine is a memoized singleton; dispose resets it.
create_async_engine does NOT open a connection, so identity checks need no
DB and run in CI (not integration-marked).
"""
import pytest
from backend.app import extensions
@pytest.mark.asyncio
async def test_get_engine_is_singleton():
a = extensions.get_engine()
b = extensions.get_engine()
assert a is b
await extensions.dispose_engine()
@pytest.mark.asyncio
async def test_dispose_engine_allows_fresh_engine():
first = extensions.get_engine()
await extensions.dispose_engine()
second = extensions.get_engine()
assert first is not second
await extensions.dispose_engine()
def test_get_session_returns_async_context_manager():
cm = extensions.get_session()
assert hasattr(cm, "__aenter__") and hasattr(cm, "__aexit__")