tenant-engine/tests/postgres_backend.py
tegwick 672cf4da6e
All checks were successful
Build and Publish Container Image / build-and-push (push) Successful in 37s
Implement TEN-WP-0011 security layer conformance
Engine/PIP declaration is now checkable (layer.yaml plus a Tooling-client
scan). Writes persist a decision record or the published fail-closed
stance, live-lookup freshness is published, events_for is tenant-scoped,
and mutation evidence drains to audit-core from a local outbox without
blocking the mutation.

Sender registration is requested as AUDIT-IN-0002. Boundary-contract
amendment is requested as NET-IN-0002.

Assistant: grok
Assistant-Session: 01a04cea-e5e8-7081-a0fc-808ebbc35fa9
2026-08-29 13:02:51 +02:00

31 lines
1.2 KiB
Python

from __future__ import annotations
import os
from pathlib import Path
import pytest
from tenant_engine.postgres_store import PostgresTenantStore
def clean_postgres_store(tmp_path: Path) -> PostgresTenantStore:
dsn = os.getenv("TENANT_ENGINE_TEST_DATABASE_URL", "").strip()
if not dsn:
pytest.skip("set TENANT_ENGINE_TEST_DATABASE_URL to exercise PostgreSQL conformance")
try:
import psycopg
except ImportError:
pytest.skip("install tenant-engine[postgres] to exercise PostgreSQL conformance")
migrations = Path(__file__).parents[1] / "migrations/postgres"
with psycopg.connect(dsn, autocommit=True) as connection:
for path in sorted(migrations.glob("*.sql")):
connection.execute(path.read_text(encoding="utf-8"))
connection.execute(
"""TRUNCATE audit_outbox, authz_records, guardrail_changes, guardrail_overrides,
idempotency_receipts, events, plans, grants, tenants
RESTART IDENTITY CASCADE"""
)
url_file = tmp_path / "postgres-url"
url_file.write_text(dsn, encoding="utf-8")
return PostgresTenantStore(str(url_file), min_pool_size=1, max_pool_size=4)