feat(agent): agentdb bootstrap, migration runner, v1 schema

This commit is contained in:
2026-08-23 16:52:07 -05:00
parent 9a3492c01a
commit b5ed0f73b9
4 changed files with 185 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
from agent.db import connect, ensure_database, run_migrations
EXPECTED_TABLES = {"schema_migrations", "sync_runs", "documents", "bills", "approvals"}
def test_ensure_database_creates_and_is_idempotent(cfg):
ensure_database(cfg)
ensure_database(cfg) # second call must not raise
with connect(cfg) as conn:
assert conn.execute("SELECT 1").fetchone()[0] == 1
def test_run_migrations_applies_each_migration_exactly_once(cfg):
ensure_database(cfg)
first = run_migrations(cfg)
assert first == ["0001_initial.sql"]
second = run_migrations(cfg)
assert second == []
with connect(cfg) as conn:
rows = conn.execute(
"SELECT tablename FROM pg_tables WHERE schemaname = 'public'"
).fetchall()
assert EXPECTED_TABLES <= {r[0] for r in rows}
def test_sync_runs_rejects_bad_status(cfg):
import psycopg
import pytest
ensure_database(cfg)
run_migrations(cfg)
with connect(cfg) as conn, pytest.raises(psycopg.errors.CheckViolation):
conn.execute(
"INSERT INTO sync_runs (connector, started_at, status)"
" VALUES ('x', now(), 'bogus')"
)