Files
saladeaula.digital/enrollments-events/tests/events/test_reenroll_if_failed.py

54 lines
1.6 KiB
Python

import app.events.reenroll_if_failed as app
from aws_lambda_powertools.utilities.typing import LambdaContext
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
def test_reenroll_custom_dedup_window(
seeds,
dynamodb_persistence_layer: DynamoDBPersistenceLayer,
lambda_context: LambdaContext,
):
enrollment_id = '294e9864-8284-4287-b153-927b15d90900'
event = {
'detail': {
'new_image': {
'id': enrollment_id,
'sk': '0',
'user': {
'id': '2beb8642-aab4-4088-86d4-2966fac7c570',
'name': 'Gary Pihl',
'email': 'gary@boston.com',
'cpf': '83152103000',
},
'course': {
'id': '62bea9b7-971d-4ee8-ab56-942dc7ca6fcd',
'name': 'pytest',
},
}
}
}
assert app.lambda_handler(event, lambda_context) # type: ignore
# Parent knows the child
r = dynamodb_persistence_layer.collection.query(
KeyPair(
pk=enrollment_id,
sk='LINKED_ENTITIES#CHILD',
)
)
*_, child_id = r['items'][0]['sk'].split('#')
# Child knows the parent
child = dynamodb_persistence_layer.collection.get_item(
KeyPair(
pk=child_id,
sk=f'LINKED_ENTITIES#PARENT#ENROLLMENT#{enrollment_id}',
)
)
assert child
dedup_window = dynamodb_persistence_layer.collection.get_item(
KeyPair(child_id, 'METADATA#DEDUPLICATION_WINDOW')
)
assert dedup_window