"""Test request access utility functions.""" from unittest.mock import patch import pytest from requests.structures import CaseInsensitiveDict from sound_recordings.api import app from sound_recordings.utils import request_access @pytest.mark.parametrize( 'context_header, output', [ # No ows user and no profile ({}, (False, None)), # ows user ({'Orchard-User-Id': 'oa:123'}, (True, None)), # profile user ({'Orchard-Profile-Id': 123, 'Orchard-Profile-Type': 'ContentProfile'}, (True, ('ContentProfile', 123))), # noqa:E501 # missing profile data ({'Orchard-Profile-Id': 123}, (False, None)), ] ) @patch('sound_recordings.models.permissions.has_profile_access') def test_check_access( mock_permissions, context_header, output ): """Test has access.""" mock_permissions.return_value = True with app.test_request_context() as request_context: request_context.request.headers = CaseInsensitiveDict(context_header) result = request_access.check_access(123, 'Vendor') assert result == output