54 lines
1.6 KiB
Python
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
|