python-3.x - 如何模拟 aiomysql 池以返回模拟的连接对象?
问题描述
我正在尝试为我的一个模块编写单元测试用例,该模块使用 aiomysql 池与 MariaDB 交互。我正在尝试模拟单元测试的数据库调用。我正在使用 asynctest python 模块来模拟。
我试图模拟 aiomysql.pool 模块中的连接方法。结果是它为 Connection 返回了一个 NoneType 对象。
def test_new(self):
with asynctest.patch('pcli.appliances.xyzdb.aiomysql.pool.connect', autospec=True) as mock_connect:
reader = asynctest.MagicMock()
reader.at_eof.return_value = False
conn_obj = asynctest.MagicMock()
conn_obj._reader = reader
mock_connect.return_value = asynctest.MagicMock()
import pdb; pdb.set_trace()
apps = yield from get_all_appliances()
我希望连接对象是 MagicMock 的一个实例,可以通过添加必要的属性进行扩展。
解决方案
推荐阅读
- flutter - 颤振:如何从扩展面板中删除图标
- reactjs - 输入“承诺”
' 缺少类型 'ReactElement 的以下属性 - python - 使用 args 定义函数以在 df.transform 中使用
- amazon-web-services - terraform 中的任务执行 IAM 角色
- php - 使用 OCB 模式时,Openssl 解密失败
- javascript - Add CSS dynamically to non-sibling div using JavaScript/jQuery?
- java - HTML 页面如何在 Eclipse 动态 Web 项目中找到 servlet?
- excel - 如何在vba excel中添加附件按钮
- ruby-on-rails - Rails 在 OPTIONS 之后不处理 POST 方法
- r - 计算日期范围 R 内的观测值