from http import HTTPMethod from layercake.dynamodb import DynamoDBPersistenceLayer from ..conftest import HttpApiProxy, LambdaContext def test_authorize( mock_app, dynamodb_seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, http_api_proxy: HttpApiProxy, lambda_context: LambdaContext, ): client_id = 'd72d4005-1fa7-4430-9754-80d5e2487bb6' r = mock_app.lambda_handler( http_api_proxy( raw_path='/authorize', method=HTTPMethod.GET, query_string_parameters={ 'response_type': 'code', 'client_id': client_id, 'redirect_uri': 'https://localhost/callback', 'scope': 'openid', 'nonce': '123', }, ), lambda_context, ) assert 'Location' in r['headers'] r = dynamodb_persistence_layer.query( key_cond_expr='#pk = :pk AND begins_with(#sk, :sk)', expr_attr_name={ '#pk': 'id', '#sk': 'sk', }, expr_attr_values={ ':pk': f'OAUTH2_CODE#CLIENT_ID#{client_id}', ':sk': 'CODE', }, ) assert len(r['items']) == 2