def test_reply(self): """ test sending a message with a reply handler """ eb = Eventbus(port=7001,debug=self.debug) handler=Handler(self.debug) body = {'msg': 'test reply' } eb.wait(State.OPEN) eb.send('echo',body,callback=handler.handle) # wait for the message to arrive time.sleep(RECEIVE_WAIT) eb.close() assert handler.result==body
def test_send(self): """ test sending a message""" eb = Eventbus(port=7001,debug=self.debug) handler=Handler(self.debug) address="echoMe" eb.registerHandler(address, handler.handle) cmd=EchoCommand("time","send",address) eb.wait(State.OPEN) eb.send('echo',cmd) # wait for the message to arrive time.sleep(RECEIVE_WAIT) eb.close() assert 'received_nanotime' in handler.result assert 'iso_time' in handler.result
def test_sendInvalidAddress(self): """ test trying to send to an invalid address""" eb = Eventbus(port=7001,debug=self.debug) handler=Handler(self.debug) errorHandler=Handler(self.debug) address="unpermitted_address" eb.registerHandler(address, handler.handle) eb.onError=errorHandler.handle cmd=EchoCommand("time","send",address) eb.send('echo',cmd) time.sleep(RECEIVE_WAIT) # 40 message bytes with payload {'type': 'err', 'message': 'access_denied'} not handled yet ... expected eb.close() assert errorHandler.err is not None assert errorHandler.result is None assert handler.err is None assert handler.result is None
def test_publishWithMultipleHandlers(self): """ test publishing a message to be handle by multiple handlers""" eb = Eventbus(port=7001,debug=self.debug) handler1=Handler(self.debug) handler2=Handler(self.debug) address="echoMe" eb.registerHandler(address, handler1.handle) eb.registerHandler(address, handler2.handle) eb.wait(State.OPEN) eb.send('echo',EchoCommand("reset","send",address)) cmd=EchoCommand("counter","publish",address) eb.send('echo',cmd) time.sleep(RECEIVE_WAIT) eb.close() assert 'counter' in handler1.result assert handler1.result['counter']==1 assert 'counter' in handler2.result assert handler1.result['counter']==1