예제 #1
0
    def test_register_handler(self):

        messenger = Messenger("TestBot")
        messenger.register_handler(EchoHandler())

        msg_client = Messenger("TestBot")
        flag = [True]
        exception = [None]
        rst = [None]
        exit_event = threading.Event()

        def on_resolve(data):
            rst[0] = data
            exit_event.set()

        def on_reject(ex):
            print ex
            flag[0] = False
            exception[0] = ex
            exit_event.set()

        try:
            msg_client.request("To test handler response",
                               5).then(on_resolve, on_reject)
            exit_event.wait(5)
            self.assertEquals("OK!", rst[0].Payload)
        finally:
            messenger.stop_monitor()
예제 #2
0
class TestBroker(unittest.TestCase):
    def setUp(self):
        r = rconfig.Read()
        self.messenger = Messenger(topic_name)
        self.redis = redis.StrictRedis(host=r.host,
                                       port=r.port,
                                       db=r.db,
                                       password=r.password)

    def test_send(self):
        oldLen = self.redis.llen(input_channel_key(topic_name))
        self.messenger.send("To test messenger send a msg.")
        len = self.redis.llen(input_channel_key(topic_name)) - oldLen
        self.assertEquals(1, len)
        self.redis.lpop(input_channel_key(topic_name))

    def test_request(self):
        flag = [True]
        exception = [None]
        rst = [None]
        exit_event = threading.Event()

        def on_resolve(data):
            rst[0] = data
            exit_event.set()

        def on_reject(ex):
            print ex
            flag[0] = False
            exception[0] = ex
            exit_event.set()

        self.messenger.request("To test messenger request a msg.",
                               5).then(on_resolve, on_reject)
        pck = self.messenger.broker.get_input_channel(
            "request_test_input_reader").read(1)
        pck.respond("OK!")
        pck.ack()
        exit_event.wait(5)
        self.assertEquals("OK!", rst[0].Payload)

    def test_register_handler(self):

        messenger = Messenger("TestBot")
        messenger.register_handler(EchoHandler())

        msg_client = Messenger("TestBot")
        flag = [True]
        exception = [None]
        rst = [None]
        exit_event = threading.Event()

        def on_resolve(data):
            rst[0] = data
            exit_event.set()

        def on_reject(ex):
            print ex
            flag[0] = False
            exception[0] = ex
            exit_event.set()

        try:
            msg_client.request("To test handler response",
                               5).then(on_resolve, on_reject)
            exit_event.wait(5)
            self.assertEquals("OK!", rst[0].Payload)
        finally:
            messenger.stop_monitor()