def test_message_str_without_info(): m = Message([{ "type": "user_typing", "channel": "C0DEW8K45", "user": "******" }]) m.match_info = {'name': 'bot'} assert str( m ) == "<Message user_typing user=U0DF0B546 channel=C0DEW8K45 info={'name': 'bot'}>"
def validate_message(self, request: Message) -> bool: if not request.text or not isinstance(request.text, str): return False result = search(self.route, request.text) if not result: return False request.match_info = result.named request.info = result.fixed return True
def test_message_match_info(): m = Message([{ "type": "user_typing", "channel": "C0DEW8K45", "user": "******" }]) assert m._match_info == {} assert m.match_info == {} m.match_info = {'name': 'bot'} assert m._match_info == {'name': 'bot'} assert m.match_info == {'name': 'bot'}
def validate_users(self, request: Message) -> bool: if not request.user_id or request.is_bot_message(): return False if not self.users: return True return bool(request.user_id in self.users)
def test_message_str_with_info(): m = Message([{ "type": "user_typing", "channel": "C0DEW8K45", "user": "******" }]) assert str( m) == '<Message user_typing user=U0DF0B546 channel=C0DEW8K45 info={}>'
def test_hello_action_message_attributes(): m = Message([{ "type": "user_typing", "channel": "C0DEW8K45", "user": "******" }]) assert m.user_id == 'U0DF0B546' assert m.user == '<@U0DF0B546>' assert m.type == 'user_typing' assert m.channel == 'C0DEW8K45' assert m.subtype is None assert m.client_msg_id is None assert m.team is None assert m.event_ts is None assert m.ts is None
def _process_message(self, raw_msg: List[dict]) -> bool: if not raw_msg: return False # parse message and find need handler msg = Message(raw_msg) route = self._routers.find_route(msg) if route is None: return False # send response to slack response = route.handler(msg) if not isinstance(response, Response): raise TypeError('Handler must be return instance Response class') return self._send(response)
def test_base_message_attributes(): m = Message([{ "client_msg_id": "eb4cbc49-e1a8-4c47-b501-0ac0dbbc2c4a", "suppress_notification": False, "type": "message", "text": "as", "user": "******", "team": "T0DF1FYHE", "channel": "C0DEW8K45", "event_ts": "1555937221.001500", "ts": "1555937221.001500" }]) assert m.user_id == 'U0DF0B546' assert m.user == '<@U0DF0B546>' assert m.type == 'message' assert m.subtype is None assert m.client_msg_id == 'eb4cbc49-e1a8-4c47-b501-0ac0dbbc2c4a' assert m.team == 'T0DF1FYHE' assert m.channel == 'C0DEW8K45' assert m.event_ts == '1555937221.001500' assert m.ts == '1555937221.001500'
def test_edited_message_attributes(): m = Message([{ "type": "message", "subtype": "message_changed", "hidden": True, "message": { "client_msg_id": "eb4cbc49-e1a8-4c47-b501-0ac0dbbc2c4a", "type": "message", "text": "ass", "user": "******", "edited": { "user": "******", "ts": "1555937291.000000" }, "ts": "1555937221.001500" }, "channel": "C0DEW8K45", "previous_message": { "client_msg_id": "eb4cbc49-e1a8-4c47-b501-0ac0dbbc2c4a", "type": "message", "text": "as", "user": "******", "ts": "1555937221.001500" }, "event_ts": "1555937291.001600", "ts": "1555937291.001600" }]) assert m.user_id == 'U0DF0B546' assert m.user == '<@U0DF0B546>' assert m.type == 'message' assert m.subtype == 'message_changed' assert m.client_msg_id == 'eb4cbc49-e1a8-4c47-b501-0ac0dbbc2c4a' assert m.team is None assert m.channel == 'C0DEW8K45' assert m.event_ts == '1555937291.001600' assert m.ts == '1555937291.001600'
def test_message_is_type_message(raw, exp_result): m = Message(raw) assert m.is_type_message() is exp_result
def test_message_init(raw): m = Message(raw) assert isinstance(m._raw, type(raw)) assert isinstance(m._raw_message, dict) assert m._raw_message assert m._match_info == {}
def test_message_is_suppress_notification(raw, exp_result): m = Message(raw) assert m.is_suppress_notification() is exp_result