我有一个API端点我正在尝试编写单元测试,我似乎无法弄清楚如何对Python Google Cloud Storage客户端库调用(https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/)进行单元测试。 我希望在库中找到一个存根,并且它就像单元测试一样简单,邮件API就是(https://cloud.google.com/appengine/docs/python/tools/localunittesting?hl=en),但还没有找到任何东西。知道如何去做吗?
答案 0 :(得分:1)
list of available unit test does not list GCS。您可以在their GitHub上提交功能请求以添加该功能。
同时使用setUp进行测试来创建文件可能是最好的选择。
答案 1 :(得分:0)
由于到目前为止,我们已经被多个Google API事务(blobstore,带有gs:/
的blobstore,cloudstorage,google-clound-storage)所困扰,因此长期以来,我们围绕所有GCS访问创建了自己的精简包装。这还包括测试存根,如下所示:
def open(path, mode='w', bucket=None, content_type=None):
if not bucket:
bucket = app_identity.get_default_gcs_bucket_name()
jsonpath = '/{}'.format(os.path.join(bucket, path))
jsonpath = jsonpath.replace('*', str(datetime.date.today()))
if os.environ.get(b'GAETK2_UNITTEST'):
LOGGER.info('running unittest, GCS disabled')
return StringIO()
return cloudstorage.open(jsonpath, mode, content_type=content_type)
如果要在大型应用程序上进行改装,仍然需要大量工作。但可能值得-下一次Google API折旧会出现。
答案 2 :(得分:-1)
添加
self.testbed.init_blobstore_stub()
到你的单元测试。