add middleware

This commit is contained in:
2025-04-02 13:43:10 -03:00
parent 3a799fbbd1
commit 8cd755f0ae
14 changed files with 213 additions and 93 deletions

View File

@@ -1,31 +1,59 @@
from http import HTTPMethod
import pytest
from aws_lambda_powertools.event_handler.api_gateway import APIGatewayHttpResolver
from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer
from middlewares import TenantMiddleware
from middlewares import AuthorizerMiddleware, TenantMiddleware
from .conftest import HttpApiProxy, LambdaContext
def test_eval(
@pytest.fixture
def mock_app(dynamodb_persistence_layer: DynamoDBPersistenceLayer):
collect = DynamoDBCollection(dynamodb_persistence_layer)
app = APIGatewayHttpResolver()
app.use(middlewares=[AuthorizerMiddleware(), TenantMiddleware(collect)])
@app.get('/')
def index():
return app.context.get('tenant')
return app
def test_tenant_user_auth(
mock_app,
dynamodb_seeds,
http_api_proxy: HttpApiProxy,
lambda_context: LambdaContext,
):
app = APIGatewayHttpResolver()
app.use(middlewares=[TenantMiddleware()])
@app.get('/')
def index():
return {}
result = app(
# This data was added from seeds
result = mock_app(
http_api_proxy(
raw_path='/',
method=HTTPMethod.GET,
headers={'Tenant': 'cJtK9SsnJhKPyxESe7g3DG'},
headers={'X-Tenant': 'cJtK9SsnJhKPyxESe7g3DG'},
),
lambda_context,
)
assert result['body'] == '{"id":"cJtK9SsnJhKPyxESe7g3DG","name":"EDUSEG"}'
assert result['statusCode'] == 200
def test_tenant_forbidden(
mock_app,
http_api_proxy: HttpApiProxy,
lambda_context: LambdaContext,
):
result = mock_app(
http_api_proxy(
raw_path='/',
method=HTTPMethod.GET,
headers={'X-Tenant': 'abc'},
),
lambda_context,
)
assert result['statusCode'] == 403