def start_session(self, init: bool = False, nap: bool = False): if nap: pass # self.slackbot.send_message(text=MsgResource.NAP) else: self.worker.stop(init=init) self.worker.run(init=init) try: # Start RTM endpoint = self.slackbot.start_real_time_messaging_session() listener = MsgListener() self.logger.info("start real time messaging session!") async def execute_bot(): ws = await websockets.connect(endpoint) while True: receive_json = await ws.recv() listener.handle(receive_json) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) asyncio.get_event_loop().run_until_complete(execute_bot()) asyncio.get_event_loop().run_forever() except BaseException: self.logger.error( f"Session Error. restart in {self.error_delay} seconds..") self.logger.exception("bot") time.sleep(self.error_delay) self.start_session(nap=True)
def test_is_dnd_updated_user(self): self.assertEqual(MsgListener().is_dnd_updated_user(self.test_dnd_msg1), True)
def test_is_message(self): self.assertEqual(MsgListener().is_message(self.test_message_msg), True)
def test_is_bot(self): self.assertEqual(MsgListener().is_bot(self.test_bot_msg1), True) self.assertEqual(MsgListener().is_bot(self.test_bot_msg2), True) self.assertEqual(MsgListener().is_bot(self.test_bot_msg3), True)
def test_is_presence(self): self.assertEqual(MsgListener().is_presence(self.test_presence_msg), True)