对Google的云存储API进行单元测试

时间:2015-09-16 16:22:34

标签: google-app-engine google-cloud-storage

我有一个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),但还没有找到任何东西。知道如何去做吗?

3 个答案:

答案 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()

到你的单元测试。