Как смоделировать пул aiomysql для возврата объекта поддельного соединения? - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь написать примеры модульных тестов для одного из моих модулей, который использует пул aiomysql для взаимодействия с MariaDB. Я пытаюсь смоделировать вызовы базы данных для модульного теста. Я использую модуль Python asynctest для насмешки.

Я пытался смоделировать метод подключения в модуле aiomysql.pool. В результате он возвращает объект 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, который можно расширить, добавив необходимые атрибуты.

...