import app.events.set_as_expired as app from aws_lambda_powertools.utilities.typing import LambdaContext from layercake.dynamodb import ( DynamoDBPersistenceLayer, SortKey, TransactKey, ) def test_set_as_expired( seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, lambda_context: LambdaContext, ): event = { 'detail': { 'old_image': { 'id': '6437a282-6fe8-4e4d-9eb0-da1007238007', 'sk': '0', } } } assert app.lambda_handler(event, lambda_context) # type: ignore r = dynamodb_persistence_layer.collection.get_items( TransactKey('6437a282-6fe8-4e4d-9eb0-da1007238007') + SortKey('0') + SortKey('SCHEDULE#SET_AS_EXPIRED#EXECUTED', rename_key='executed') ) assert r['status'] == 'EXPIRED' assert 'executed' in r def test_set_as_expired_failed( seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, lambda_context: LambdaContext, ): event = { 'detail': { 'old_image': { 'id': '845fe390-e3c3-4514-97f8-c42de0566cf0', 'sk': '0', } } } assert not app.lambda_handler(event, lambda_context) # type: ignore r = dynamodb_persistence_layer.collection.get_items( TransactKey('845fe390-e3c3-4514-97f8-c42de0566cf0') + SortKey('0') + SortKey('SCHEDULE#SET_AS_EXPIRED#FAILED', rename_key='failed') ) assert r['status'] == 'COMPLETED' assert 'failed' in r