"""Tests for ows_account interface.""" from unittest.mock import MagicMock import requests from flexmock import flexmock from owsrequest import request from notifications_delivery import config from notifications_delivery.constants import error, ows_services from notifications_delivery.models import ows_account def test_get_vendor_info(monkeypatch): """Test get vendor info when the request is successfull.""" mock_account_info = { 'vendor_id': 123, 'is_distributor': 'Y', 'owner': 'OWNER', 'name': 'Vendor Name', 'status': 'signed' } mock_ows_account_response = requests.models.Response() mock_ows_account_response.status_code = 200 mock_ows_account_response.json = MagicMock(return_value=mock_account_info) monkeypatch.setattr( request, 'process', MagicMock(return_value=mock_ows_account_response)) vendor_id = '123' result = ows_account.get_vendor_info(vendor_id) request.process.assert_called_once_with( application=ows_services.APPLICATION_NAME, environment=config.ENVIRONMENT, method=ows_services.METHOD_GET, service_name=ows_services.OWS_ACCOUNT, path='/vendor/123') assert result.status == 200 assert result.message == mock_account_info def test_get_vendor_info_error(monkeypatch): """Test getting vendor info when the request fails.""" vendor_id = '123' ows_account_error = 'ERROR' mock_ows_account_response = flexmock(requests.models.Response()) mock_ows_account_response.status_code = 400 (flexmock(mock_ows_account_response) .should_receive('text') .and_return(ows_account_error)) (flexmock(request) .should_receive('process') .and_return(mock_ows_account_response)) monkeypatch.setattr( request, 'process', MagicMock(return_value=mock_ows_account_response)) result = ows_account.get_vendor_info(vendor_id) print(result.status, result.message) assert result.status == 400 assert result.errors == { 'code': error.ERROR_CODE_OWS_ACCOUNT_REQUEST, 'message': ows_account_error }