我正在尝试为save_file_to_s3
方法编写单元测试:
class S3Wrapper(object):
def __init__(self, aws_key, aws_secret):
self._s3_handle = S3Connection(aws_key, aws_secret)
def save_file_to_s3(self, filename, bucket_name, key):
bucket = self._s3_handle.get_bucket(bucket_name)
k = Key(bucket)
k.key = key
k.set_contents_from_filename(filename)
我如何使用mocktests做到这一点?
答案 0 :(得分:2)
直接在类本身上修补方法。为方便起见,我通常会将这些常见的模拟转换为装饰器,例如:
import mock
from boto.s3.key import Key
def mock_s3_key(func):
def _mock_s3_key(*args, **kwargs):
with mock.patch.object(Key, 'set_contents_from_filename', return_value=None):
return func(*args, **kwargs)
return _mock_s3_key
class YourTest(TestCase):
@mock_s3_key
def test_save_file_to_s3(self):
# test code here
pass