You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
be-lcca/tests/unit/test_masterdata_service.py

40 lines
1.2 KiB
Python

import pytest
from unittest.mock import AsyncMock, MagicMock
from src.masterdata.service import create, get
from src.masterdata.schema import MasterDataCreate
@pytest.mark.asyncio
async def test_create_masterdata_service():
mock_db = AsyncMock()
mock_db.add = MagicMock()
masterdata_in = MasterDataCreate(
name="Test",
description="Desc",
unit_of_measurement="unit",
value_num=10.0,
seq=1
)
result = await create(db_session=mock_db, masterdata_in=masterdata_in)
assert result.name == "Test"
mock_db.add.assert_called_once()
mock_db.commit.assert_called_once()
@pytest.mark.asyncio
async def test_get_masterdata_service():
mock_db = AsyncMock()
mock_db.add = MagicMock()
mock_result = MagicMock()
mock_masterdata = MagicMock()
mock_masterdata.id = "test-id"
# Mock behavior of db_session.execute().scalars().one_or_none()
mock_result.scalars.return_value.one_or_none.return_value = mock_masterdata
mock_db.execute.return_value = mock_result
result = await get(db_session=mock_db, masterdata_id="test-id")
assert result.id == "test-id"
mock_db.execute.assert_called_once()