"""Tests for ows-permissions Model.""" from unittest.mock import patch from owsrequest import request as requests import sentry_sdk from product.constants import service_name from product.models import ows_permissions def test_get_profile_resources(ows_request_mocker): """Test GET request for profile resources success.""" profile_type = "LabelProfile" profile_id = 1 resource_type = "label" expected_response = { "items": [ { "type": "Subaccount", "uuid": "cb09e9c3-1c68-11f0-8476-0ef8c77b7565", "vendor_id": 123, "vendor_name": "Test Vendor", } ], "pagination": {"total_records": 1, "type": "none"} } ows_request_mocker.add( { "method": "get", "service": service_name.OWS_PERMISSIONS, "path": f"/admin/profile-type/{profile_type}/profile/{profile_id}" f"/resource/{resource_type}", "status": 200, "json": expected_response, } ) ows_request_mocker.apply() result = ows_permissions.get_profile_resources( profile_id=profile_id, profile_type=profile_type, resource_type=resource_type) assert result.status == 200 assert result.message == expected_response @patch("product.models.ows_permissions.g", spec=["log"]) def test_get_profile_resources_exception(mock_g, mocker, test_vendor): """Test GET request for profile resources when an exception occurs.""" mocker.patch.object(requests, "get", side_effect=Exception("error")) mocker.patch.object(sentry_sdk, "capture_exception") result = ows_permissions.get_profile_resources( profile_id=1, profile_type="LabelProfile", resource_type="label" ) assert result.status == 500