"""Unit tests for ows_contracts model.""" from src.models import ows_contracts import pytest import httpx @pytest.mark.asyncio async def test_get_oa_active_contracts_success(ows_client_mock): """Test get_oa_active_contracts returns valid data.""" ows_client_mock.get( 'ows-contracts', path='vendor/1/mechadmin_for_account' ).mock(return_value=httpx.Response(status_code=200, json={'mechadmin_digital': False, 'mechadmin_physical': True})) ows_client_mock.get( 'ows-contracts', path='vendor/2/mechadmin_for_account' ).mock(return_value=httpx.Response(status_code=200, json={'mechadmin_digital': False, 'mechadmin_physical': True})) expected = { 1: {'mechadmin_digital': False, 'mechadmin_physical': True}, 2: {'mechadmin_digital': False, 'mechadmin_physical': True} } result = await ows_contracts.get_oa_active_contracts([1, 2]) assert result == expected @pytest.mark.asyncio async def test_get_oa_active_contracts_raises_exception(ows_client_mock): """Test get_oa_active_contracts raises exception.""" ows_client_mock.get( 'ows-contracts', path='vendor/101/mechadmin_for_account' ).mock(return_value=httpx.Response(status_code=404, json={'code': 'not_found_error', 'messsage': None})) ows_client_mock.get( 'ows-contracts', path='vendor/102/mechadmin_for_account' ).mock(return_value=httpx.Response(status_code=200, json={'mechadmin_digital': False, 'mechadmin_physical': True})) with pytest.raises(Exception, match='Failed for vendor 101 with status 404'): await ows_contracts.get_oa_active_contracts([101, 102])