add iugu postback

This commit is contained in:
2026-01-12 23:30:52 -03:00
parent 29b8305713
commit ad23e9aa51
25 changed files with 191 additions and 29 deletions

View File

@@ -0,0 +1,41 @@
from http import HTTPMethod, HTTPStatus
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
from .conftest import HttpApiProxy, LambdaContext
order_id = '121c1140-779d-4664-8d99-4a006a22f547'
def test_postback(
app,
dynamodb_seeds,
dynamodb_persistence_layer: DynamoDBPersistenceLayer,
http_api_proxy: HttpApiProxy,
lambda_context: LambdaContext,
):
# This data was added from seeds
r = app.lambda_handler(
http_api_proxy(
raw_path=f'/{order_id}/postback',
method=HTTPMethod.POST,
body=(
'event=invoice.status_changed&'
'data[id]=RDBBACE5DE174554BA2C836E96D751AA&'
'data[status]=paid&'
'data[account_id]=AF01CF1B3451459F92666F10589278EE&'
'data[payment_method]=iugu_credit_card&'
'data[paid_at]=2022-10-17T18:21:55-03:00&'
'data[paid_cents]=10255&'
'data[order_id]=cPqkdJUeqqCB6WATsSWnsZ'
),
is_base64_encoded=True,
headers={'content-type': 'application/x-www-form-urlencoded'},
),
lambda_context,
)
assert r['statusCode'] == HTTPStatus.NO_CONTENT
order = dynamodb_persistence_layer.get_item(KeyPair(order_id, '0'))
assert order['status'] == 'PAID'