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
50 lines
1.2 KiB
Python
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
|