File size: 1,734 Bytes
732b14f
 
 
 
 
 
 
 
 
 
 
c893230
732b14f
 
 
 
 
 
 
 
 
 
 
 
c893230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
732b14f
 
 
 
c893230
 
 
 
732b14f
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
"""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