"""SQLite parallel-section safety helpers.""" from __future__ import annotations from app.db.database import ( is_sqlite_database, multi_section_parallel_enabled, parallel_section_writes_safe, ) def test_sqlite_parallel_respects_opt_out(monkeypatch) -> None: monkeypatch.setattr( "app.db.database.settings.database_url", "sqlite+aiosqlite:///./dev.db", ) monkeypatch.setattr( "app.db.database.settings.allow_sqlite_parallel_sections", False, ) assert is_sqlite_database() is True assert parallel_section_writes_safe() is False def test_multi_section_parallel_via_dedicated_flag(monkeypatch) -> None: monkeypatch.setattr( "app.db.database.settings.database_url", "sqlite+aiosqlite:///./dev.db", ) monkeypatch.setattr( "app.db.database.settings.allow_sqlite_parallel_sections", True, ) monkeypatch.setattr( "app.db.database.settings.enable_parallel_section_generation", True, ) monkeypatch.setattr("app.db.database.settings.enable_async_pipeline", False) assert multi_section_parallel_enabled() is True def test_multi_section_parallel_async_fallback(monkeypatch) -> None: monkeypatch.setattr( "app.db.database.settings.database_url", "postgresql+asyncpg://localhost/db", ) monkeypatch.setattr( "app.db.database.settings.enable_parallel_section_generation", False, ) monkeypatch.setattr("app.db.database.settings.enable_async_pipeline", False) assert multi_section_parallel_enabled() is False monkeypatch.setattr("app.db.database.settings.enable_async_pipeline", True) assert multi_section_parallel_enabled() is True