"""Test ows-royalties requests.""" from unittest import mock import httpx from owsclient import OwsClient from owsclient.test import OwsClientMock import pytest from src.connectors.exceptions import OwsRoyaltiesException from src.connectors.ows_royalties import get_payment_entities from src.models import PaymentEntity def test_get_payment_entity(ows_client_mock: OwsClientMock) -> None: """Test get payment entity success.""" payment_entity: PaymentEntity = PaymentEntity( reference_payment_entity_id=1, payment_entity_name='some_name', country_of_tax_reporting='uk', ) ows_client_mock.get('ows-royalties', '/reference-payment-entities/').mock( return_value=httpx.Response( status_code=200, json={ 'items': [PaymentEntity.model_dump(payment_entity)], 'total_count': 1, }, ) ) res = get_payment_entities() assert len(res) == 1 assert res == [payment_entity] def test_get_payment_entity_failure(ows_client_mock: OwsClientMock) -> None: """Test get payment entity failure.""" ows_client_mock.get('ows-royalties', '/reference-payment-entities/').mock( return_value=httpx.Response(status_code=400, json='error') ).mock(return_value=httpx.Response(status_code=400, json='error')) with pytest.raises( OwsRoyaltiesException, match='ERROR in GET /reference-payment-entities/' ): get_payment_entities()