Skip to content

Commit

Permalink
Merge pull request #592 from vselvarajijay/hexagonal
Browse files Browse the repository at this point in the history
+ wip: unit tests
  • Loading branch information
vselvarajijay committed May 1, 2024
2 parents 8e910d1 + c1355e6 commit ab6e760
Show file tree
Hide file tree
Showing 7 changed files with 87 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,17 @@ def get_registry(self, registry_id: str) -> Optional[Registry]:
if item:
return Registry(**item)
return None

def update_registry(self, registry: Registry) -> Optional[Registry]:
response = self.table.put_item(
Item={
'partition_key': 'registry-id:%s' % registry.id,
'sort_key': 'meta',
**registry.model_dump()
}
)
status_code = response['ResponseMetadata']['HTTPStatusCode']
assert status_code == 200
return registry


Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from datetime import datetime, timezone
import uuid

from mbc.domain.commands.registry_management.update_registry_command import UpdateRegistryCommand
from mbc.adapters.dynamodb_query_service import DynamoDBRegistryQueryService
from mbc.domain.model.registry import RegistryUser, Registry

from decimal import Decimal


def handle_update_registry_command(
command: UpdateRegistryCommand,
patient_query_service: DynamoDBRegistryQueryService,
) -> bool:
timestamp = Decimal(datetime.now(timezone.utc).timestamp())
registry = patient_query_service.update_registry(
Registry(
id=uuid.uuid4().hex,
name=command.name,
description=command.description,
created_at=timestamp
)
)


return registry
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from pydantic import BaseModel


class UpdateRegistryCommand(BaseModel):
name: str
description: str
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,8 @@ def create_registry(self, registry: Registry) -> Optional[Registry]:

@abstractmethod
def get_registry(self, registry_id: str) -> Optional[Registry]:
...

@abstractmethod
def update_registry(self, registry: Registry) -> Optional[Registry]:
...
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

from fastapi.testclient import TestClient

from mbc.entrypoints.api.main import app
from mbc.domain.model.registry import Registry
from mbc.entrypoints.api.main import app

client = TestClient(app)

Expand All @@ -13,11 +13,33 @@ class TestRegistryEndpoint(unittest.TestCase):

@patch('mbc.adapters.dynamodb_query_service.DynamoDBRegistryQueryService.create_registry')
def test_create_registry(self, mock_create_registry):
registry = Registry(id="123", name="Test Registry", description="This is a test registry", created_at=1234567890.1234567890)
registry = Registry(id="123", name="Test Registry", description="This is a test registry",
created_at=1234567890.1234567890)
mock_create_registry.return_value = registry
response = client.post("/v1/registry", json={
"name": "Test Registry",
"description": "This is a test registry"
})
assert response.status_code == 200
assert Registry(**response.json()) == registry
assert Registry(**response.json()) == registry

@patch('mbc.adapters.dynamodb_query_service.DynamoDBRegistryQueryService.get_registry')
def test_get_registry(self, mock_get_registry):
registry = Registry(id="123", name="Test Registry", description="This is a test registry",
created_at=1234567890.1234567890)
mock_get_registry.return_value = registry
response = client.get("/v1/registry/123")
assert response.status_code == 200
assert Registry(**response.json()) == registry

@patch('mbc.adapters.dynamodb_query_service.DynamoDBRegistryQueryService.update_registry')
def test_update_registry(self, mock_update_registry):
registry = Registry(id="123", name="Test Registry", description="This is a test registry",
created_at=1234567890.1234567890)
mock_update_registry.return_value = registry
response = client.put("/v1/registry/123", json={
"name": "Test Registry",
"description": "This is a test registry"
})
assert response.status_code == 200
assert Registry(**response.json()) == registry
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from mbc.domain.commands.registry_management.create_registry_command import CreateRegistryCommand
from mbc.domain.commands.registry_management.get_registry_command import GetRegistryCommand
from mbc.entrypoints.api.v1.models.create_registry import CreateRegistry
from mbc.entrypoints.api.v1.models.update_registry import UpdateRegistry

logger = logging.getLogger('mangum')
router = APIRouter()
Expand All @@ -35,5 +36,6 @@ async def create_registry(registry: CreateRegistry):


@router.put("/{registry_id}")
async def update_registry(payload: dict):
return None
async def update_registry(update_registry: UpdateRegistry, registry_id: str):
queue_service = DynamoDBRegistryQueryService()
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from pydantic import BaseModel



class UpdateRegistry(BaseModel):
name: str
description: str

0 comments on commit ab6e760

Please sign in to comment.