我正在使用Python 2.7和boto3与S3存储桶进行交互。到目前为止一切都很好!
我现在想要实现的是删除桶操作的单元测试,但是使用模拟数据,即没有与S3存储的真正交互。
对于整个项目中的其他单元测试,我已成功使用补丁和boto3的Stubber,但由于某些原因,我无法找到使用相同技术模拟使用S3 resource和Bucket sub-resource。
这是我要进行单元测试的代码片段:
def delete_bucket(self, bucket_name):
resource = boto3.resource('s3')
bucket = resource.Bucket(bucket_name)
bucket.objects.all().delete()
return bucket.delete()
谢谢!
答案 0 :(得分:0)
您可以使用unittest.mock。这样,可以修补任何方法并设置返回值:
from unittest.mock import patch
with patch('boto3.bucket.delete') as boto_delete_patch:
boto_delete_patch.return_value = 'Return value'
# Perform any action