如何模拟aiomysql池以返回模拟的连接对象?

时间:2019-05-16 19:33:00

标签: python-3.x mocking python-asyncio aio

我正尝试为使用aiomysql池与MariaDB接口的模块之一编写单元测试用例。我正在尝试模拟单元测试的数据库调用。我正在使用asynctest python模块进行模拟。

我试图模拟aiomysql.pool模块中的connect方法。结果是它为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的实例,可以通过添加必要的属性来对其进行扩展。

0 个答案:

没有答案