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來運行測試?