Пример #1
0
class TestManoBrokerConnection(unittest.TestCase):
    """
    Test basic broker interactions.
    """
    def setUp(self):
        self._last_message = None
        self.m = ManoBrokerConnection("test")

    def tearDown(self):
        del self.m

    def _simple_subscribe_cbf(self, ch, method, props, body):
        self._last_message = str(body, "utf-8")

    def wait_for_message(self, timeout=2):
        """
        Helper to deal with async messaging system.
        Waits until a message is written to self._last_message
        or until a timeout is reached.
        :param timeout: seconds to wait
        :return:
        """
        waiting = 0
        while self._last_message is None and waiting < timeout:
            time.sleep(0.01)
            waiting += 0.01
        if not waiting < timeout:
            raise Exception("Message lost. Subscription timeout reached.")
            return None
        m = self._last_message
        self._last_message = None
        return m

    def test_broker_connection(self):
        """
        Test broker connection.
        """
        self.m.publish("test.topic", "testmessage")

    def test_broker_bare_publishsubscribe(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf, "test.topic")
        time.sleep(0.5)  # give broker some time to register subscriptions
        self.m.publish("test.topic", "testmessage")
        self.assertEqual(self.wait_for_message(), "testmessage")
Пример #2
0
class TestManoBrokerConnection(BaseTestCase):
    """
    Test basic broker interactions.
    """
    def setUp(self):
        super().setUp()
        self.m = ManoBrokerConnection("test-basic-broker-connection")

    #@unittest.skip("disabled")
    def test_broker_connection(self):
        """
        Test broker connection.
        """
        self.m.publish("test.topic", "testmessage")

    #@unittest.skip("disabled")
    def test_broker_bare_publishsubscribe(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf1, "test.topic")
        time.sleep(1)
        self.m.publish("test.topic", "testmsg")
        self.assertEqual(self.wait_for_messages()[0], "testmsg")

    #@unittest.skip("disabled")
    def test_broker_multi_publish(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf1, "test.topic")
        time.sleep(1)
        for i in range(0, 100):
            self.m.publish("test.topic", "%d" % i)
        self.assertEqual(self.wait_for_messages(n_messages=100)[99], "99")

    #@unittest.skip("disabled")
    def test_broker_doulbe_subscription(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf1, "test.topic")
        self.m.subscribe(self._simple_subscribe_cbf2, "test.topic")
        time.sleep(1)
        for i in range(0, 100):
            self.m.publish("test.topic", "%d" % i)
        self.assertEqual(
            self.wait_for_messages(buffer=0, n_messages=100)[99], "99")
        self.assertEqual(
            self.wait_for_messages(buffer=1, n_messages=100)[99], "99")
Пример #3
0
 def setUp(self):
     super().setUp()
     self.m = ManoBrokerConnection("test-basic-broker-connection")
 def setUp(self):
     super().setUp()
     self.m = ManoBrokerConnection("test-basic-broker-connection")
class TestManoBrokerConnection(BaseTestCase):
    """
    Test basic broker interactions.
    """

    def setUp(self):
        super().setUp()
        self.m = ManoBrokerConnection("test-basic-broker-connection")

    #@unittest.skip("disabled")
    def test_broker_connection(self):
        """
        Test broker connection.
        """
        self.m.publish("test.topic", "testmessage")

    #@unittest.skip("disabled")
    def test_broker_bare_publishsubscribe(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf1, "test.topic")
        time.sleep(1)
        self.m.publish("test.topic", "testmsg")
        self.assertEqual(self.wait_for_messages()[0], "testmsg")

    #@unittest.skip("disabled")
    def test_broker_multi_publish(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf1, "test.topic")
        time.sleep(1)
        for i in range(0, 100):
            self.m.publish("test.topic", "%d" % i)
        self.assertEqual(self.wait_for_messages(n_messages=100)[99], "99")

    #@unittest.skip("disabled")
    def test_broker_doulbe_subscription(self):
        """
        Test publish / subscribe messaging.
        """
        self.m.subscribe(self._simple_subscribe_cbf1, "test.topic")
        self.m.subscribe(self._simple_subscribe_cbf2, "test.topic")
        time.sleep(1)
        for i in range(0, 100):
            self.m.publish("test.topic", "%d" % i)
        self.assertEqual(self.wait_for_messages(buffer=0, n_messages=100)[99], "99")
        self.assertEqual(self.wait_for_messages(buffer=1, n_messages=100)[99], "99")
Пример #6
0
 def setUp(self):
     self._last_message = None
     self.m = ManoBrokerConnection("test")