59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
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/subscription',
|
|
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'
|