import pytest from fastapi.testclient import TestClient from pytest_mock import MockerFixture from syrupy.assertion import SnapshotAssertion from delivery_metadata.clients.ows_carveouts import get_product_territory_rights from delivery_metadata.models.schemas import TerritoryCodeA2 @pytest.mark.asyncio async def test_get_product_carveouts( mocker: MockerFixture, ows_carveouts_territory_rights_mock: list[TerritoryCodeA2], test_client: TestClient, snapshot: SnapshotAssertion, ) -> None: response_mock = mocker.Mock() response_mock.json = mocker.Mock( return_value={ "territories": [x.country_code for x in ows_carveouts_territory_rights_mock] } ) get_mock = mocker.patch.object( test_client.app.state.ows_connector, # type: ignore[attr-defined] "get", return_value=response_mock, autospec=True, ) result = await get_product_territory_rights(75679660923, 286) get_mock.assert_called_once_with( service_name="ows-carveouts", path="/carveout/projection/75679660923/dms/286" ) response_mock.raise_for_status.assert_called_once() assert result == snapshot