"""Tests for ows-permissions model.""" from unittest.mock import MagicMock, patch import pytest from collaborator.constants import error, service_name from collaborator.models.ows import ows_permissions from collaborator.utils.error import OwsError @patch("collaborator.models.ows.ows_permissions.request") @pytest.mark.parametrize( "profile_type, profile_id, message", [("CollaboratorsProfile", 123, "test"), ("CollaboratorsProfile", 456, "test")], ) def test_get_permissions(mock_request, profile_type, profile_id, message): """Test getting vendor permissions for a profile_id.""" mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = message mock_response.text = message mock_request.get.return_value = mock_response resource_type = "label" result = ows_permissions.get_permissions(profile_type, profile_id, resource_type) assert result == message mock_request.get.assert_called_with( service_name.OWS_PERMISSIONS, f"/admin/profile-type/{profile_type}/profile/" f"{profile_id}/resource/{resource_type}", ) @patch("collaborator.models.ows.ows_permissions.request") def test_permissions_fail(mock_request): """Test failing to get the profile_id's permissions.""" mock_response = MagicMock() mock_response.status_code = 500 mock_response.json.return_value = dict( code=error.ERROR_CODE_OWS_PERMISSIONS, message="Some error" ) mock_request.get.return_value = mock_response with pytest.raises(OwsError) as err: ows_permissions.get_permissions("CollaboratorsProfile", 123, "label") assert err.value.code == error.ERROR_CODE_OWS_PERMISSIONS assert err.value.message == "Some error" assert err.value.status == 500