feat: monorepo migration phase 5
App checks / changes (push) Canceled after 0s
App checks / tournament (push) Canceled after 0s
App checks / shifts (push) Canceled after 0s

This commit is contained in:
2026-10-07 15:20:27 +01:00
parent d534588e27
commit 66b72d1348
28 changed files with 406 additions and 26 deletions
@@ -0,0 +1,54 @@
from concurrent.futures import ThreadPoolExecutor
from sqlalchemy import URL
from sqlalchemy.pool import StaticPool
from crr_common.database import create_sync_engine
def test_sqlite_connection_can_cross_request_worker_threads(tmp_path):
engine = create_sync_engine(URL.create("sqlite", database=str(tmp_path / "threads.sqlite")))
try:
with engine.connect() as connection, ThreadPoolExecutor(max_workers=1) as pool:
assert pool.submit(lambda: connection.exec_driver_sql("SELECT 42").scalar_one()).result() == 42
finally:
engine.dispose()
def test_caller_pool_options_and_memory_database_are_preserved():
engine = create_sync_engine("sqlite:///:memory:", poolclass=StaticPool)
try:
assert isinstance(engine.pool, StaticPool)
with engine.begin() as connection:
connection.exec_driver_sql("CREATE TABLE example(value INTEGER)")
connection.exec_driver_sql("INSERT INTO example VALUES(7)")
with engine.connect() as connection:
assert connection.exec_driver_sql("SELECT value FROM example").scalar_one() == 7
finally:
engine.dispose()
def test_shared_factory_leaves_sqlite_pragmas_to_the_consumer(tmp_path):
engine = create_sync_engine(URL.create("sqlite", database=str(tmp_path / "policy.sqlite")))
try:
with engine.connect() as connection:
assert connection.exec_driver_sql("PRAGMA foreign_keys").scalar_one() == 0
assert connection.exec_driver_sql("PRAGMA journal_mode").scalar_one() == "delete"
finally:
engine.dispose()
def test_non_sqlite_urls_and_explicit_connection_options(monkeypatch):
from crr_common import database
calls = []
marker = object()
def factory(url, **options):
calls.append((url, options))
return marker
monkeypatch.setattr(database, "create_engine", factory)
assert create_sync_engine("postgresql://localhost/example", pool_pre_ping=True) is marker
assert calls[-1][1] == {"connect_args": {}, "pool_pre_ping": True}
arguments = {"check_same_thread": True, "timeout": 10}
assert create_sync_engine("sqlite://", connect_args=arguments) is marker
assert calls[-1][1]["connect_args"] == arguments
assert arguments == {"check_same_thread": True, "timeout": 10}