from http import HTTPMethod, HTTPStatus from layercake.dynamodb import ( DynamoDBPersistenceLayer, KeyPair, ) from ...conftest import HttpApiProxy, LambdaContext def test_subscription( app, seeds, http_api_proxy: HttpApiProxy, dynamodb_persistence_layer: DynamoDBPersistenceLayer, lambda_context: LambdaContext, ): r = app.lambda_handler( http_api_proxy( raw_path='/orgs/2a8963fc-4694-4fe2-953a-316d1b10f1f5', method=HTTPMethod.GET, ), lambda_context, ) assert r['statusCode'] == HTTPStatus.OK def test_add_subscription( app, seeds, http_api_proxy: HttpApiProxy, dynamodb_persistence_layer: DynamoDBPersistenceLayer, lambda_context: LambdaContext, ): org_id = 'f6000f79-6e5c-49a0-952f-3bda330ef278' r = app.lambda_handler( http_api_proxy( raw_path=f'/orgs/{org_id}/subscription', method=HTTPMethod.POST, body={ 'name': 'Banco do Brasil', 'billing_day': 1, 'payment_method': 'MANUAL', }, ), lambda_context, ) assert r['statusCode'] == HTTPStatus.CREATED r = dynamodb_persistence_layer.collection.get_items( KeyPair(org_id, '0') + KeyPair(org_id, 'METADATA#SUBSCRIPTION', rename_key='metadata') + KeyPair('SUBSCRIPTION', f'ORG#{org_id}', rename_key='subscription') ) assert r['metadata']['billing_day'] == 1 assert r['metadata']['payment_method'] == 'MANUAL' assert r['subscription']['name'] == 'Banco do Brasil'