Commit 99c471b9 authored by Sergio Gimenez's avatar Sergio Gimenez
Browse files

Add partner certs and in-memory concrete implementation for testing

parent f64dd8be
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -48,3 +48,4 @@ files = ["src/federation_manager", "tests"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
pythonpath = ["."]
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ from uuid import UUID
class PartnerOP:
    id: UUID
    mcc_mnc: str
    cert_thumbprint: str  # SHA-256 of the partner's client cert; the mTLS lookup key
    status: str  # pending | active | suspended | decommissioned

    def is_active(self) -> bool:
+7 −0
Original line number Diff line number Diff line
from typing import Protocol

from federation_manager.domain.models import PartnerOP


class PartnerRepositoryPort(Protocol):
    async def find_by_cert_thumbprint(self, thumbprint: str) -> PartnerOP | None: ...

tests/__init__.py

0 → 100644
+0 −0

Empty file added.

tests/fakes.py

0 → 100644
+9 −0
Original line number Diff line number Diff line
from federation_manager.domain.models import PartnerOP


class InMemoryPartnerRepo:
    def __init__(self, partners: list[PartnerOP]) -> None:
        self._by_thumbprint = {p.cert_thumbprint: p for p in partners}

    async def find_by_cert_thumbprint(self, thumbprint: str) -> PartnerOP | None:
        return self._by_thumbprint.get(thumbprint)
Loading