import pytest import constants LAMBDA_NAME = constants.LAMBDA_VECTOR_READY_DELIVERIES DMS_ID = '1223' ENCODER_ID = 18 @pytest.mark.parametrize('alchemy_db', ['dd'], indirect=True) @pytest.mark.parametrize('batch_delivery', ['N', 'Y']) def test_lambda_ready_deliveries(alchemy_db, lambda_client, batch_delivery, cloudwatch_log_handler): """Test ready-deliveries lambda sets encoding_queue_detail status from encoded to ready_to_deliver \n https://www.notion.so/Ready-Deliveries-7cb7aa2307a04c8e86f40a18ca812f9c""" order_type = 'release' detail_id = alchemy_db.encoding_queue.get_detail_id_for_ready_deliveries( DMS_ID, order_type, ENCODER_ID) if batch_delivery == 'Y': alchemy_db.delivery_batch.delete_batch_if_exists(detail_id) alchemy_db.encoding_queue.update_queue_detail_status(detail_id, 'encoded') lambda_event = { "allowed_encoders": [ENCODER_ID], "dms_id": DMS_ID, "order_type": order_type, "batch_delivery": batch_delivery } lambda_client.invoke(LAMBDA_NAME, lambda_event) cloudwatch_log_handler.assert_lambda_logs_message( LAMBDA_NAME, f'Finished .*lambda-vector-ready-deliveries.* for dms_id {DMS_ID}' ) alchemy_db.encoding_queue. \ assert_encoding_queue_detail_status(detail_id, 'ready_to_deliver') if batch_delivery == 'Y': alchemy_db.delivery_batch.assert_batch_created(detail_id) def test_lambda_ready_deliveries_no_jobs(lambda_client, cloudwatch_log_handler): """Test ready-deliveries lambda has No encoded jobs picked up \n https://www.notion.so/Ready-Deliveries-7cb7aa2307a04c8e86f40a18ca812f9c""" lambda_event = { "allowed_encoders": [ENCODER_ID], "dms_id": DMS_ID, "order_type": 'release', "batch_delivery": 'Y' } lambda_client.invoke(LAMBDA_NAME, lambda_event) cloudwatch_log_handler.assert_lambda_logs_message( LAMBDA_NAME, 'No encoded jobs picked up' )