Модульное тестирование класса, который загружает в S3 - PullRequest
0 голосов
/ 25 февраля 2020

Я создал класс, который принимает в качестве аргумента фрейм данных, преобразует его в файл 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?

1 Ответ

2 голосов
/ 25 февраля 2020
  1. Mock boto3.resource.
  2. Запустите что-то вроде Moto , если вы хотите проверить фактическое HTTPS-взаимодействие; больше подходит для функциональных испытаний.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...