Coverage for app/tests/core/test_db.py: 100%
34 statements
« prev ^ index » next coverage.py v7.6.10, created at 2026-06-04 22:29 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2026-06-04 22:29 +0000
1from sqlalchemy import Engine, text
2from sqlalchemy.engine.url import make_url
4from app.core.config import Settings
5from app.tests.conftest import SQLITE_TEST_DB
8def test_db_manager_pragma_fk(read_engine: Engine) -> None:
9 with read_engine.connect() as conn:
10 result = conn.execute(text("pragma foreign_keys;")).scalar()
11 expected_result = 1
12 assert result == expected_result
15def test_db_manager_pragma_busy_timeout(read_engine: Engine) -> None:
16 with read_engine.connect() as conn:
17 result = conn.execute(text("pragma busy_timeout;")).scalar()
18 expected_result = 5000
19 assert result == expected_result
22def test_db_manager_pragma_journal_mode(read_engine: Engine) -> None:
23 with read_engine.connect() as conn:
24 result = conn.execute(text("pragma journal_mode;")).scalar()
25 expected_result = "wal"
26 assert result == expected_result
29def test_db_manager_pragma_synchronous(read_engine: Engine) -> None:
30 with read_engine.connect() as conn:
31 result = conn.execute(text("pragma synchronous;")).scalar()
32 expected_result = 1 # normal
33 assert result == expected_result
36def test_db_manager_url_read_engine(
37 read_engine: Engine, test_settings: Settings
38) -> None:
39 result = read_engine.url
40 expected_result = make_url(f"{test_settings.SQLALCHEMY_DATABASE_URI}&mode=ro")
41 assert result == expected_result
42 assert result.database.removeprefix("file:") == str(SQLITE_TEST_DB)
45def test_db_manager_url_write_engine(
46 write_engine: Engine, test_settings: Settings
47) -> None:
48 result = write_engine.url
49 expected_result = make_url(test_settings.SQLALCHEMY_DATABASE_URI)
50 assert result == expected_result
51 assert result.database.removeprefix("file:") == str(SQLITE_TEST_DB)