import pytest from unittest.mock import MagicMock, patch import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent / "src")) @pytest.fixture def mock_client(): return MagicMock() @pytest.fixture def mock_service_provider(mock_client): provider_mock = MagicMock() mock_response = MagicMock() mock_response.is_error = False mock_response.data = [] provider_mock.party.find_by_identifier.return_value = mock_response provider_mock.party.create.return_value = mock_response return provider_mock @pytest.fixture def server_with_mocks(mock_service_provider): with patch("tryton_mcp.server._service_provider", mock_service_provider): yield mock_service_provider @pytest.mark.asyncio class TestParty: async def test_create_new_customer(self, server_with_mocks): from tryton_mcp.server import create_customer server_with_mocks.party.create.return_value.data = [1] result = create_customer( name="Alejandro Zapata", identifiers=[["create", [{"type": "mobile", "code": "310659595"}]]], ) assert result == [1] async def test_find_customer(self, server_with_mocks): from tryton_mcp.server import find_customer_by_identifier expected_return = [ {"id": 19, "party": 44, "party.": {"name": "Alejandro Zapata", "id": 44}} ] server_with_mocks.party.find_by_identifier.return_value.data = expected_return result = find_customer_by_identifier("310659595") assert result == expected_return