Я хотел бы смоделировать функцию pika basic_get, которая не импортируется напрямую ни в один из моих модулей. Вывод результата указывает на объект MagicMock, но когда я вызываю basic_get непосредственно в функции тестирования, имитация работает. Какие шаги я могу предпринять, чтобы решить эту проблему?
cli.py
@click.command
def main():
connection, channel = get_con()
message = channel.basic_get('some_queue', no_ack=True)
print(message)
con.py
def get_con.py
parameters = pika.URLParameters('amqp://')
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
return connection, channel
test.py
@patch('pika.channel.Channel.basic_get')
def test_something(basic_get_mock):
with patch('con.get_con', return_value=(MagicMock(), MagicMock())) as get_con_mock:
basic_get_mock.return_value = 45
runner = CliRunner()
result = runner.invoke(main)
print(result.output)