import pytest import constants from conftest import add_order_json_file_to_s3, shared_order_json from utils.db_objects.art_relations import EncodingOrder DYNAMODB_TABLE = constants.DYNAMODB_VECTOR_ORDERS S3_BUCKET = constants.S3_ORCHBUCKET PRODUCT_ID = 884385034672 STORE_ID = 1223 ASSERTION_LAMBDA_NAME = constants.LAMBDA_VECTOR_SAVE_TO_DD_DB @pytest.mark.parametrize('alchemy_db', ['art_relations'], indirect=True) def test_vector_ddb_streams_handler(alchemy_db, dynamo_db, current_datetime, s3_handler, cloudwatch_log_handler): """Test vector_ddb_streams_handler lambda invokes lambda-vector-save-to-dd-db \n https://www.notion.so/Obtain-Flow- 297cd35c20ff4c41b7e7e484cef9a399?pvs=4#43b632044c52419bb8e54824a3117fe6 """ encoding_order = EncodingOrder(2, 18, current_datetime, 1223, 'track') eo = alchemy_db.encoding_order.insert_encoding_order(encoding_order) eo_id = eo.encoding_order_id current_datetime = current_datetime.replace(' ', 'T') add_order_json_file_to_s3(s3_handler, encoding_order, current_datetime, PRODUCT_ID, STORE_ID, S3_BUCKET) insert_row_into_dynamo_db(current_datetime, dynamo_db, encoding_order, eo_id) cloudwatch_log_handler.assert_lambda_logs_message( ASSERTION_LAMBDA_NAME, f"'order_id': {{'S': '{eo_id}'}}") def insert_row_into_dynamo_db(current_datetime, dynamo_db, encoding_order, eo_id): base_json = shared_order_json(encoding_order, current_datetime) dynamo_db_data = { 's3_key': f'vector3/vector-orders/{eo_id}.json', 's3_bucket_name': S3_BUCKET, } dynamo_db_data.update(base_json) dynamo_db.put(dynamo_db_data, DYNAMODB_TABLE)