为了账号安全,请及时绑定邮箱和手机立即绑定

如何模拟谷歌云存储桶并将其链接到客户端对象?

如何模拟谷歌云存储桶并将其链接到客户端对象?

吃鸡游戏 2022-06-07 19:02:20
我在云运行中有一个函数,并尝试在 Python 中使用模拟进行测试。如何使用 blob 模拟存储桶并将其附加到存储客户端?断言失败,它以这种格式显示输出Display File content: <MagicMock name='mock.get_bucket().get_blob().download_as_string().decode()' id='140590658508168'># test   def test_read_sql(self):      storage_client = mock.create_autospec(storage.Client)      mock_bucket = storage_client.get_bucket('test-bucket')      mock_blob = mock_bucket.blob('blob1')      mock_blob.upload_from_string("file_content")      read_content = main.read_sql(storage_client, mock_bucket, mock_blob)      print('File content: {}'.format(read_content))      assert read_content == 'file_content'# actual method def read_sql(gcs_client, bucket_id, file_name):    bucket = gcs_client.get_bucket(bucket_id)    blob = bucket.get_blob(file_name)    contents = blob.download_as_string()    return contents.decode('utf-8')```
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

  def test_read_sql(self):
        storage_client = mock.create_autospec(storage.Client)
        mock_bucket = mock.create_autospec(storage.Bucket)
        mock_blob = mock.create_autospec(storage.Blob)
        mock_bucket.return_value = mock_blob
        storage_client.get_bucket.return_value = mock_bucket
        mock_bucket.get_blob.return_value = mock_blob
        mock_blob.download_as_string.return_value.decode.return_value = "file_content"
        read_content = main.read_sql(storage_client, 'test_bucket', 'test_blob')
                assert read_content == 'file_content'


查看完整回答
反对 回复 2022-06-07
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信