Я создал класс, который принимает в качестве аргумента фрейм данных, преобразует его в файл CSV, а затем помещает его в указанный сегмент в S3:
from io import StringIO
import boto3
class Push:
def __init__(self, bucket):
self.s3_resource = boto3.resource('s3')
self.bucket2 = bucket
def push_to_cloud(self, df, folder):
csv_buffer = StringIO()
df.to_csv(csv_buffer)
file_n = [x for x in globals() if globals()[x] is df][0]
file_name = file_n + ".csv"
self.s3_resource.Object(self.bucket2, folder + "/" + file_name).put(Body=csv_buffer.getvalue())
Как мне написать unittest для проверки, является ли вход фрейма данных, а выход - CSV?