"""Tests for the ows-royalties model.""" from unittest.mock import MagicMock from owsrequest import request as requests from ows_product_physical import api from ows_product_physical.constant import service_name from ows_product_physical.models import ows_royalties def test_is_abacus_account_mech_admin( monkeypatch, valid_get_header, context): """Test checking if an abacus account is mech admin.""" account_id = 123 mock_content = {'mechadmin_physical': True, 'mechadmin_digital': True} with context, api.app.test_request_context(headers=valid_get_header): monkeypatch.setattr( requests, 'get', MagicMock(return_value=MagicMock( status_code=200, json=MagicMock(return_value=mock_content)) ) ) res = ows_royalties.is_abacus_account_mech_admin(account_id) requests.get.assert_called_once_with( service_name.OWS_ROYALTIES, f'/contracts/mechanical-deductions/account/{account_id}/mechadmin' ) assert res.status == 200 assert res.message.get('mechadmin_physical') is True assert res.message.get('mechadmin_digital') is True # Test when getting a bad response from ows-royalties monkeypatch.setattr( requests, 'get', MagicMock(return_value=MagicMock( status_code=500, json=MagicMock(return_value={})) ) ) res = ows_royalties.is_abacus_account_mech_admin(account_id) requests.get.assert_called_once_with( service_name.OWS_ROYALTIES, f'/contracts/mechanical-deductions/account/{account_id}/mechadmin' ) assert res.status == 500