无法对Python AWS代码进行单元测试

时间:2019-10-20 08:23:24

标签: python amazon-web-services python-unittest

我以前从未做过单元测试,所以我无法理解如何在代码的任何模块中进行测试。

我已经使用boto3编写了用于在AWS中插入和删除标签的函数。我将在下面附加一个函数的代码。我需要知道如何在不使用模拟的情况下对代码进行单元测试。还是有可能?

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 :(得分:-1)

模拟 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)
相关问题