Ejemplo n.º 1
0
    def test_subscriptions(self):
        hub = MessageHub(context=self.context)
        hub.start()
        queue = MessageQueue.from_hub(hub, topics=["A", ])
        queue.start()
        queue.subscribe("B")

        hub.send_message("B", {"b": 1})
        hub.send_message("C", {"c": 1})
        hub.send_message("A", {"a": 1})
        self.assertEqual(queue.get_message(timeout=10), ("B", {"b": 1}))
        self.assertEqual(queue.get_message(timeout=10), ("A", {"a": 1}))

        queue.kill(block=True, timeout=10)
        hub.kill(block=True, timeout=10)
Ejemplo n.º 2
0
    def test_reactor(self):
        hub = MessageHub(context=self.context)
        hub.start()
        reactor = MessageReactor.from_hub(hub)
        reactor.start()

        callback = MagicMock()
        reactor.register_callback("A", callback)

        hub.send_message("B", {})
        data = {"a": 1}
        hub.send_message("A", data)

        gevent.sleep(1.0)
        callback.assert_called_once_with("A", data)

        reactor.kill(block=True, timeout=10)
        hub.kill(block=True, timeout=10)
Ejemplo n.º 3
0
    def test_messaging(self):
        hub = MessageHub(context=self.context)
        hub.start()
        queue = MessageQueue.from_hub(hub, topics=["A", ])
        queue.start()

        hub.send_message("A", {"a": 1})
        self.assertEqual(queue.get_message(timeout=10), ("A", {"a": 1}))

        queue.kill(block=True, timeout=10)
        hub.kill(block=True, timeout=10)