generated from john/python-template
v5.0 Introduce centralized homepage & portrait photo management
Quality Gate / gate (push) Failing after 11s
Quality Gate / gate (push) Failing after 11s
This commit is contained in:
+28
-7
@@ -3,6 +3,7 @@
|
||||
import warnings
|
||||
|
||||
import pytest
|
||||
import pytest_asyncio
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy import text
|
||||
@@ -25,6 +26,13 @@ from transcription.db.models import PersonRole
|
||||
from transcription.db.models import Source
|
||||
|
||||
|
||||
@pytest_asyncio.fixture(autouse=True)
|
||||
async def _reset_database_runtime():
|
||||
await dispose_database_runtime()
|
||||
yield
|
||||
await dispose_database_runtime()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_create_all_creates_expected_tables(tmp_path):
|
||||
settings = Settings(
|
||||
@@ -43,6 +51,7 @@ async def test_create_all_creates_expected_tables(tmp_path):
|
||||
assert "document_type" in table_names
|
||||
assert "tag" in table_names
|
||||
assert "person" in table_names
|
||||
assert "photo" in table_names
|
||||
assert "person_role" in table_names
|
||||
assert "document_person" in table_names
|
||||
assert "document_tag" in table_names
|
||||
@@ -205,7 +214,7 @@ async def test_reconcile_legacy_job_source_columns_drops_executed_at(tmp_path):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_reconcile_canonical_media_paths_normalizes_source_and_person_paths(tmp_path):
|
||||
async def test_reconcile_canonical_media_paths_normalizes_source_and_photo_paths(tmp_path):
|
||||
settings = Settings(
|
||||
openrouter_api_key="test-key",
|
||||
database=SqliteSettings(path=str(tmp_path / "canonical-paths.db")),
|
||||
@@ -218,10 +227,22 @@ async def test_reconcile_canonical_media_paths_normalizes_source_and_person_path
|
||||
async with runtime.engine.begin() as connection:
|
||||
await connection.execute(
|
||||
text(
|
||||
'insert into "person" (id, full_name, portrait_path, created_at, updated_at) '
|
||||
'values (:id, :full_name, :portrait_path, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)'
|
||||
'insert into "person" (id, full_name, created_at, updated_at) '
|
||||
'values (:id, :full_name, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)'
|
||||
),
|
||||
{"id": "11" * 16, "full_name": "Portrait", "portrait_path": "portraits/person/seeded.png"},
|
||||
{"id": "11" * 16, "full_name": "Portrait"},
|
||||
)
|
||||
await connection.execute(
|
||||
text(
|
||||
'insert into "photo" (id, person_id, path, is_primary, created_at, updated_at) '
|
||||
'values (:id, :person_id, :path, :is_primary, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)'
|
||||
),
|
||||
{
|
||||
"id": "44" * 16,
|
||||
"person_id": "11" * 16,
|
||||
"path": "data\\photos\\seeded.png",
|
||||
"is_primary": 1,
|
||||
},
|
||||
)
|
||||
await connection.execute(
|
||||
text(
|
||||
@@ -253,11 +274,11 @@ async def test_reconcile_canonical_media_paths_normalizes_source_and_person_path
|
||||
source_path = (
|
||||
await connection.execute(text('select file_path from "source" where id = :id'), {"id": "33" * 16})
|
||||
).scalar_one()
|
||||
portrait_path = (
|
||||
await connection.execute(text('select portrait_path from "person" where id = :id'), {"id": "11" * 16})
|
||||
photo_path = (
|
||||
await connection.execute(text('select path from "photo" where id = :id'), {"id": "44" * 16})
|
||||
).scalar_one()
|
||||
assert source_path == "documents/doc-1/page.png"
|
||||
assert portrait_path == "persons/person/seeded.png"
|
||||
assert photo_path == "photos/seeded.png"
|
||||
finally:
|
||||
await dispose_database_runtime()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user