import pytest import constants LAMBDA_NAME = constants.LAMBDA_VECTOR_FIND_BATCH_TO_CLOSE @pytest.mark.parametrize('alchemy_db', ['dd'], indirect=True) @pytest.mark.parametrize('test_var', [ {'DMS': 465, 'assert_status': 'queued_for_closing'}, {'DMS': 1711, 'assert_status': 'ready_to_close'} ]) def test_lambda_find_batch_to_close(test_var, alchemy_db, lambda_client, cloudwatch_log_handler): """Test find-batch-to-close lambda updates batch with open status to ready_to_close \n https://www.notion.so/Batch-Cleanup-80e6edf96e5049a49ebb03bf6cda7766""" batch_id = alchemy_db.delivery_batch.get_batch_id(test_var['DMS']) eq_detail_ids = alchemy_db.delivery_batch \ .get_batch_encoding_queue_detail_records(batch_id) for eqd in eq_detail_ids: detail_id = eqd[0] alchemy_db.encoding_queue.update_queue_detail_status(detail_id, 'delivered') alchemy_db.delivery_batch.update_batch_status(batch_id, 'open') lambda_client.invoke(LAMBDA_NAME) alchemy_db.delivery_batch.\ assert_status(batch_id, test_var['assert_status']) if test_var['assert_status'] == 'queued_for_closing': cloudwatch_log_handler.assert_lambda_logs_message( LAMBDA_NAME, f"Updated batch_id {batch_id} to {test_var['assert_status']}" ) cloudwatch_log_handler.assert_lambda_logs_message( LAMBDA_NAME, f"Added batch_id {batch_id} to qa-batch_to_close-queue queue" )