3
我有一个继承kombu.ConsumerProducerMixin
的类,我希望在没有运行实际的rabbitmq服务的情况下进行测试。在pytest中模拟一个连接类
class Aggregator(ConsumerProducerMixin):
def __init__(self, broker_url):
exchange_name = 'chargers'
self.status = 0
self.connection = Connection(broker_url)
...
在我的测试文件,我做了以下内容:
from unittest.mock import Mock, patch
from aggregator import Aggregator
@patch('kombu.connection.Connection')
def test_on_request(conn_mock):
agg = Aggregator('localhost')
m = Message("", {"action": "start"}, content_type="application/json")
步入Aggregator.__init__
使用调试器,我看到connection
仍然没有修补是一个Mock
实例:
(Pdb) self.connection
<Connection: amqp://guest:**@localhost:5672// at 0x7fc8b7f636d8>
(Pdb) Connection
<class 'kombu.connection.Connection'>
我的问题是我如何正确地修补连接,使我不需要rabbitmq来运行测试?