from aws_lambda_powertools.utilities.typing import LambdaContext from layercake.dynamodb import ( DynamoDBPersistenceLayer, SortKey, TransactKey, ) import events.billing.close_window as app def test_close_window( dynamodb_seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, lambda_context: LambdaContext, ): event = { 'detail': { 'new_image': { 'id': 'BILLING#ORG#BES6dmWgTMXRYmfDyYYXUF', 'sk': 'START#2025-07-01#END#2025-07-31#SCHEDULE#AUTO_CLOSE', 'created_at': '2025-07-24T15:20:52.464244-03:00', 'ttl': 1754017200, } } } assert app.lambda_handler(event, lambda_context) # type: ignore # r = dynamodb_persistence_layer.collection.get_items( # TransactKey('BILLING#ORG#BES6dmWgTMXRYmfDyYYXUF') # + SortKey('START#2025-07-01#END#2025-07-31') # + SortKey('START#2025-07-01#END#2025-07-31#SCHEDULE#AUTO_CLOSE#EXECUTED'), # flatten_top=False, # ) # assert 's3_uri' in r['START#2025-07-01#END#2025-07-31'] # assert 'created_at' in r['START#2025-07-01#END#2025-07-31'] # assert 'updated_at' in r['START#2025-07-01#END#2025-07-31'] # assert r['START#2025-07-01#END#2025-07-31']['status'] == 'CLOSED' # assert 'START#2025-07-01#END#2025-07-31#SCHEDULE#AUTO_CLOSE#EXECUTED' in r