"""Pytest fixtures for fan-response-authorizer.""" import pytest @pytest.fixture def principal_id(): """Principal id.""" return 'user' @pytest.fixture def method_arn(): """Mock methodArn from API Gateway event.""" return 'arn:aws:execute-api:us-east-1:103233932089:esecakj5w5/qa/POST/my-endpoint' @pytest.fixture def wildcard_resource(): """Resource ARN scoped to the entire API+stage.""" return 'arn:aws:execute-api:us-east-1:103233932089:esecakj5w5/qa/*/*' @pytest.fixture def event(method_arn): """Mock valid event.""" return { 'type': 'TOKEN', 'methodArn': method_arn, 'authorizationToken': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InVackJNOVF4b3hVcTZhSXBEYkl0YyJ9.eyJpc3MiOiJodHRwczovL2Rldi1tYW1jZ2loYTB4MHo1cDI1LnVzLmF1dGgwLmNvbS8iLCJzdWIiOiJEUEZoNWJsZnF2cWoxZ1hXOUZ5c05KZzRMQzhLam9ZUkBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9kZXYtbWFtY2dpaGEweDB6NXAyNS51cy5hdXRoMC5jb20vYXBpL3YyLyIsImlhdCI6MTcxMzUyMzMzMSwiZXhwIjoxNzEzNjA5NzMxLCJzY29wZSI6InJlYWQ6YWN0aW9ucyIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyIsImF6cCI6IkRQRmg1YmxmcXZxajFnWFc5RnlzTkpnNExDOEtqb1lSIn0.iRwzZVB8Cnm8txJN68pyME8WwwheY-F-pQQYNWXOZAd566X4tNciiU5ZQfhiv_RswRN7LIWBJaVwKfo1WOrPN3JjxVgVnAKgaeZ14bU6rJL18GHDnB8EcRPaRd4gNFzLDzypTqCJgW8zA3wQcEItWvnXGGEoxAovai8yzVGlawj18z2z4mwYCbo0G9jXFTFgZipwv3w8bGizd64oS5mzJHgJXEdWEzvUzl9qyc8GpRNkO0oTd1uIAz5Hx8mZKJVmY2QEqXLo4vd5fRZaWPxQX84jod8y0A_1edX9LH2luVm7ZEs2xDiT4zkejsPq484Df-sb15JHSc5GkZrMpoLySQ' # noqa } @pytest.fixture def event_missing_token(method_arn): """Mock event with missing token.""" return { 'type': 'TOKEN', 'methodArn': method_arn, } @pytest.fixture def allow_response(principal_id, wildcard_resource): """Allow response.""" return { 'principalId': principal_id, 'policyDocument': { 'Version': '2012-10-17', 'Statement': [{ 'Action': 'execute-api:Invoke', 'Effect': 'Allow', 'Resource': wildcard_resource }] } } @pytest.fixture def deny_response(principal_id, wildcard_resource): """Deny response.""" return { 'principalId': principal_id, 'policyDocument': { 'Version': '2012-10-17', 'Statement': [{ 'Action': 'execute-api:Invoke', 'Effect': 'Deny', 'Resource': wildcard_resource }] } }