gpt4 book ai didi

python-3.x - 在 python 中模拟 BigQuery 连接

转载 作者:行者123 更新时间:2023-12-05 08:51:33 26 4
gpt4 key购买 nike

我在 python 文件中有以下代码。我必须对该文件进行单元测试。但是为了做到这一点,我需要实例化类的对象

class BigQuery(metaclass=singleton.Singleton):
"""
Big Query Class for operations on big query
Will standardize in future versions.
"""

def __init__(self):
"""
Used for initializing client
"""
try:
self.client = bigquery.Client.from_service_account_json(
SERVICE_ACCOUNT_JSON)
except:
logging.error("Cannot instantiate bigquery client", exc_info=True)
raise Exception("Cannot instantiate bigquery client.")

上面的类还包含其他需要测试的方法。如何在不调用 bigquery API 的情况下为每个方法模拟对象?

最佳答案

我成功了。基本上,您需要模拟对 bigquery 客户端初始化的函数调用。在 mock.patch 的帮助下,我们可以模拟客户端对象或函数 from_service_account_json。以下是代码

with patch.object(bigquery.Client, "from_service_account_json") as srv_acc_mock:
srv_acc_mock.return_value = Mock()

# do something here....

我们也需要为 GCS 客户端遵循相同的模式,但通过导入正确的模块将 bigquery.Client 更改为 storage.Client

关于python-3.x - 在 python 中模拟 BigQuery 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59542080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com