diff --git a/oslo/messaging/_drivers/impl_fake.py b/oslo/messaging/_drivers/impl_fake.py index 3a65cf30e..96b4e5b8e 100644 --- a/oslo/messaging/_drivers/impl_fake.py +++ b/oslo/messaging/_drivers/impl_fake.py @@ -35,8 +35,14 @@ class InvalidTarget(base.TransportDriverError, ValueError): class FakeIncomingMessage(base.IncomingMessage): + def __init__(self, listener, ctxt, message, reply_q): + super(FakeIncomingMessage, self).__init__(listener, ctxt, message) + self._reply_q = reply_q + def reply(self, reply=None, failure=None): - self.listener._deliver_reply(reply, failure) + # FIXME: handle failure + if self._reply_q: + self._reply_q.put(reply) def done(self): pass @@ -48,18 +54,11 @@ class FakeListener(base.Listener): super(FakeListener, self).__init__(driver, target) self._exchange = exchange - def _deliver_reply(self, reply=None, failure=None): - # FIXME: handle failure - if self._reply_q: - self._reply_q.put(reply) - def poll(self): - self._reply_q = None while True: (ctxt, message, reply_q) = self._exchange.poll(self.target) if message is not None: - self._reply_q = reply_q - return FakeIncomingMessage(self, ctxt, message) + return FakeIncomingMessage(self, ctxt, message, reply_q) time.sleep(.05)