Невозможно выполнить модульное тестирование кода Python AWS - PullRequest
0 голосов
/ 20 октября 2019

Я никогда раньше не проводил модульное тестирование, поэтому я не могу понять, как это сделать ни в одном модуле моего кода.

Я кодировал функции для вставки и удаления тегов в AWS с использованием boto3. Я прикреплю код функции ниже. Мне нужно знать, как тестировать код без использования насмешек. Или это вообще возможно?

def tagging_insertion(self, source_objectname, tagset):
    s3_client = boto3.client('s3', region_name=self.parameter["default_region"])
    s3_client.put_object_tagging(
        Bucket = self.parameter["SourceBucketName"],
        Key = source_objectname,
        Tagging = tagset
    )

Это часть кода, который я хочу протестировать.

1 Ответ

0 голосов
/ 20 октября 2019

насмешка над put_object_tagging - правильный выбор.

"Грязная" альтернатива - сделать что-то подобное, но не рекомендуется . потому что код не должен быть изменен для тестов. Вот почему издевательства и приспособления для.

def tagging_insertion(self, source_objectname, tagset, is_test=False):
     s3_client = boto3.client('s3', region_name=self.parameter["default_region"])
     if not is_test:
         s3_client.put_object_tagging(Bucket=self.parameter["SourceBucketName"],
                                      Key=source_objectname,Tagging=tagset)
...