"""Tests for ows_users model.""" from unittest.mock import MagicMock import pytest import requests import const # noqa import index # noqa from models import ows_users def test_get_user_document_for_subaccount( mocker, user_document_fixture, subaccount_id): """Test get user info from ows-users for subaccount successfully.""" mocker.patch( 'requests.get', return_value=MagicMock( spec=requests.models.Response, status_code=200, json=lambda: user_document_fixture)) result = ows_users.get_user_document('subccount_id', subaccount_id) assert result == user_document_fixture def test_get_user_document_for_vend_contact( mocker, user_document_fixture, vend_contact_id): """Test get user info from ows-users for vend_contact successfully.""" document = user_document_fixture document.pop() mocker.patch( 'requests.get', return_value=MagicMock( spec=requests.models.Response, status_code=200, json=lambda: document)) result = ows_users.get_user_document('user_id', vend_contact_id) assert result == document def test_get_user_document_for_contact( mocker, user_document_fixture, contact_id): """Test get user info from ows-users for contact successfully.""" document = user_document_fixture document.pop() mocker.patch( 'requests.get', return_value=MagicMock( spec=requests.models.Response, status_code=200, json=lambda: document)) result = ows_users.get_user_document('contact', contact_id) assert result == document def test_get_user_document_for_user_not_found( mocker, ows_not_found_response, vend_contact_id): """Test get user document for user from ows-users not found.""" mocker.patch( 'requests.get', return_value=ows_not_found_response) result = ows_users.get_user_document('user_id', vend_contact_id) assert result == [] def test_get_user_document_for_user_error( mocker, ows_error_response, vend_contact_id): """Test get user document for user from ows-users error.""" mocker.patch( 'requests.get', return_value=ows_error_response) with pytest.raises(Exception, match=const.OWS_USERS_ERROR.format('user_id')): ows_users.get_user_document('user_id', vend_contact_id)