"""Tests for ows-abacus-account model.""" from unittest.mock import MagicMock, patch import pytest from collaborator.constants import error, service_name from collaborator.models.ows import ows_abacus_account from collaborator.utils.error import OwsError from tests.testutils import vendor_fixtures @patch("collaborator.models.ows.ows_abacus_account.request") def test_get_abacus_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_ABACUS_ACCOUNT mock_response.text = "content" mock_request.get.return_value = mock_response result = ows_abacus_account.get_abacus_account_metadata(mock_account) assert result == vendor_fixtures.VENDOR_ABACUS_ACCOUNT mock_request.get.assert_called_with( service_name.OWS_ABACUS_ACCOUNT, f"/account/{mock_account.id}/account-payment-term", headers={ "Orchard-Profile-Type": "CollaboratorsProfile", "Orchard-Roles": "royalties", }, ) @patch("collaborator.models.ows.ows_abacus_account.request") def test_get_abacus_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_abacus_account.get_abacus_account_metadata(mock_account) assert err.value.code == error.ERROR_CODE_OWS_ACCOUNT assert err.value.message == "Some error" assert err.value.status == 500