提问人:Rodrigo 提问时间:8/18/2018 最后编辑:tehhowchRodrigo 更新时间:8/26/2020 访问量:2466
模拟访问公有 GCS 存储桶的结果
Mock the result of accessing public GCS bucket
问:
我有以下代码:
bucket = get_bucket('bucket-name')
blob = bucket.blob(os.path.join(*pieces))
blob.upload_from_string('test')
blob.make_public()
result = blob.public_url
# result is `<Mock name='mock().get_bucket().blob().public_url`
我确实想嘲笑public_url的结果,我的单元测试代码是这样的
with ExitStack() as st:
from google.cloud import storage
blob_mock = mock.Mock(spec=storage.Blob)
blob_mock.public_url.return_value = 'http://'
bucket_mock = mock.Mock(spec=storage.Bucket)
bucket_mock.blob.return_value = blob_mock
storage_client_mock = mock.Mock(spec=storage.Client)
storage_client_mock.get_bucket.return_value = bucket_mock
st.enter_context(
mock.patch('google.cloud.storage.Client', storage_client_mock))
my_function()
有没有像 FakeRedis 或 moto 这样的东西用于 Google Storage,所以我可以嘲笑?google.cloud.storage.Blob.public_url
评论