Files
awoooi/apps/api/tests/test_evidence_snapshot_tenant.py
ogt d26bf5515a
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m34s
CD Pipeline / build-and-deploy (push) Successful in 5m24s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 1s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Successful in 33s
CD Pipeline / post-deploy-checks (push) Successful in 3m1s
fix(agent): require durable tenant evidence before apply
2026-07-10 21:12:00 +08:00

50 lines
1.2 KiB
Python

from __future__ import annotations
import pytest
from src.services import evidence_snapshot as evidence_module
from src.services.evidence_snapshot import EvidenceSnapshot
class _FakeDb:
def __init__(self) -> None:
self.records: list[object] = []
def add(self, record: object) -> None:
self.records.append(record)
async def flush(self) -> None:
return None
class _FakeDbContext:
def __init__(self, db: _FakeDb) -> None:
self.db = db
async def __aenter__(self) -> _FakeDb:
return self.db
async def __aexit__(self, *_args: object) -> None:
return None
@pytest.mark.asyncio
async def test_save_uses_snapshot_project_context(
monkeypatch: pytest.MonkeyPatch,
) -> None:
projects: list[str] = []
db = _FakeDb()
def fake_get_db_context(project_id: str) -> _FakeDbContext:
projects.append(project_id)
return _FakeDbContext(db)
monkeypatch.setattr(evidence_module, "get_db_context", fake_get_db_context)
snapshot = EvidenceSnapshot(incident_id="INC-TENANT", project_id="tenant-a")
await snapshot.save()
assert projects == ["tenant-a"]
assert len(db.records) == 1
assert snapshot.persisted is True