import json from functools import wraps from unittest.mock import patch from tests.v2.constants import SECRETS_MANAGER_CLIENTS def mock_decorator(*args, **kwargs): def decorator(f): @wraps(f) def decorated_function(*args, **kwargs): return f(*args, **kwargs) return decorated_function return decorator def mock_requires_auth(): """Prevent auth check :return: mock._patch """ return patch('delphi_api.auth.resource_protector.ProxyResourceProtector.__call__', mock_decorator) def mock_requires_scope(return_value): """Prevent false scope check :return: mock._patch """ return patch( 'delphi_api.auth.resource_protector.ProxyResourceProtector.requires_scope', return_value=return_value) def patch_decode_token(): """Disable connexion token validation for tests Returns: mock._patch: """ return patch('delphi_api.auth.resource_protector.ProxyResourceProtector.decode_token', return_value={'fake': 'claims', 'azp': 'test_client_id_1'}) def patch_get_secret(): """Disable secretsmanager call """ return patch('delphi_api.core.secrets_manager.get_secret', return_value=json.dumps(SECRETS_MANAGER_CLIENTS)) def patch_log_request(): """Disable secretsmanager call """ return patch('delphi_api.core.tracing.log_request') def patch_get_image_data(): return patch('delphi_api.v3.atlas.image_service.AtlasImageService._get_image_data', return_value={'uri': None}) def mock_requires_auth_and_scope() -> None: """Prevent auth check""" mock_requires_auth().start() mock_requires_scope(True).start()