"""Tests for ows-users model.""" from unittest.mock import MagicMock, patch import pytest from collaborator.constants import error, service_name from collaborator.models.ows import ows_account from collaborator.utils.error import OwsError from tests.testutils import vendor_fixtures @patch("collaborator.models.ows.ows_account.request") def test_get_account_metadata(mock_request, mock_account): """Test getting the account's metadata.""" mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = vendor_fixtures.VENDOR_RESPONSE mock_response.text = "content" mock_request.get.return_value = mock_response result = ows_account.get_account_metadata(mock_account) assert result == vendor_fixtures.VENDOR_RESPONSE mock_request.get.assert_called_with( service_name.OWS_ACCOUNT, f"/vendor/{mock_account.id}" ) @patch("collaborator.models.ows.ows_account.request") def test_get_account_metadata_fail(mock_request, mock_account): """Test failing to get the account's metadata.""" mock_response = MagicMock() mock_response.status_code = 500 mock_response.json.return_value = dict( code=error.ERROR_CODE_OWS_ACCOUNT, message="Some error" ) mock_request.get.return_value = mock_response with pytest.raises(OwsError) as err: ows_account.get_account_metadata(mock_account) assert err.value.code == error.ERROR_CODE_OWS_ACCOUNT assert err.value.message == "Some error" assert err.value.status == 500