"""Test ows-account requests.""" from unittest.mock import patch import httpx from owsclient.test import OwsClientMock from payoneer_payments_payout.ows_account import ( get_brands, lookup_vendor_ids, vendor_company_brands_dataloader ) @patch('payoneer_payments_payout.ows_account.raise_service_error') def test_get_brands_success(mock_raise_service_error, ows_client_mock: OwsClientMock): """Test get_brands success scenario.""" request_url = '/brands' mock_response = [{'name': 'BrandA', 'logoUrl': 'url', 'uuid': 'uuid1'}] ows_client_mock.get('ows-account', request_url).mock( return_value=httpx.Response(200, json=mock_response) ) result = get_brands() assert result == mock_response mock_raise_service_error.assert_not_called() @patch('payoneer_payments_payout.ows_account.raise_service_error') def test_get_brands_failure(mock_raise_service_error, ows_client_mock: OwsClientMock): """Test get_brands failure scenario.""" request_url = '/brands' ows_client_mock.get('ows-account', request_url).mock( return_value=httpx.Response(400, json='error') ) get_brands() mock_raise_service_error.assert_called_once_with( 'ERROR in GET /brands', 'ows-account' ) @patch('payoneer_payments_payout.ows_account.raise_service_error') def test_lookup_vendor_ids_success( mock_raise_service_error, ows_client_mock: OwsClientMock ): """Test lookup_vendor_ids success scenario.""" request_url = '/lookup/vendors/vendor-ids/' mock_response = {'vendors': [{'vendor_id': 1, 'uuid': 'abc'}]} ows_client_mock.post('ows-account', request_url).mock( return_value=httpx.Response(200, json=mock_response) ) result = lookup_vendor_ids([1]) assert result == mock_response mock_raise_service_error.assert_not_called() @patch('payoneer_payments_payout.ows_account.raise_service_error') def test_lookup_vendor_ids_failure( mock_raise_service_error, ows_client_mock: OwsClientMock ): """Test lookup_vendor_ids failure scenario.""" request_url = '/lookup/vendors/vendor-ids/' ows_client_mock.post('ows-account', request_url).mock( return_value=httpx.Response(400, json='error') ) lookup_vendor_ids([1]) mock_raise_service_error.assert_called_once_with( 'ERROR in POST /lookup/vendors/vendor-ids/', 'ows-account' ) @patch('payoneer_payments_payout.ows_account.raise_service_error') def test_vendor_company_brands_dataloader_success( mock_raise_service_error, ows_client_mock: OwsClientMock ): """Test vendor_company_brands_dataloader success scenario.""" request_url = '/vendors/company_brands/dataloader' mock_response = {'vendors': [{'vendor_id': 1, 'uuid': 'abc'}]} ows_client_mock.post('ows-account', request_url).mock( return_value=httpx.Response(200, json=mock_response) ) result = vendor_company_brands_dataloader(['abc']) assert result == mock_response mock_raise_service_error.assert_not_called() @patch('payoneer_payments_payout.ows_account.raise_service_error') def test_vendor_company_brands_dataloader_failure( mock_raise_service_error, ows_client_mock: OwsClientMock ): """Test vendor_company_brands_dataloader failure scenario.""" request_url = '/vendors/company_brands/dataloader' ows_client_mock.post('ows-account', request_url).mock( return_value=httpx.Response(400, json='error') ) vendor_company_brands_dataloader(['abc']) mock_raise_service_error.assert_called_once_with( 'ERROR in POST /vendors/company_brands/dataloader', 'ows-account' )