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.
38 lines
1.1 KiB
Python
38 lines
1.1 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()
|
|
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_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()
|