def test_get_messages_text(self): # создаем команду team_uid = func.add_team(self.api)['uid'] # приглашаем пользователей user1_jid = func.get_my_jid(self.api, team_uid) user2_jid = func.add_contact(self.api, team_uid, self.phone2)['jid'] user3_jid = func.add_contact(self.api, team_uid, self.phone3)['jid'] # добавляем участников к группе group_jid = func.add_group(self.api, team_uid)['jid'] func.add_member_to_group(self.api, team_uid, group_jid, user2_jid, 'member') func.add_member_to_group(self.api, team_uid, group_jid, user3_jid, 'admin') # добавляем сообщения api2 = auth.login_another_user(self.url, self.phone2, self.code2) api3 = auth.login_another_user(self.url, self.phone3, self.code3) pattern = 'msg' text = f'{pattern}_{tools.generate_random_string(7)}' msg1 = f'1_{text}' msg2 = f'2_{text}' msg3 = 'hello' func.send_text(self.api, team_uid, group_jid, msg1) func.send_text(api2, team_uid, group_jid, msg2) func.send_text(api3, team_uid, group_jid, msg3) params = { 'text': pattern, } resp = self.api.get_filtered_messages(team_uid, params).json() assert 'error' not in resp assert len(resp['result']['objects']) == 2 assert resp['result']['objects'][0]['content']['text'] == msg2 assert resp['result']['objects'][1]['content']['text'] == msg1
def test_get_botcommands_member(self): team_uid = func.add_team(self.api)['uid'] group_jid = func.add_group(self.api, team_uid)['jid'] user2_jid = func.add_contact(self.api, team_uid, self.phone2)['jid'] func.add_member_to_group(self.api, team_uid, group_jid, user2_jid, 'member') api2 = auth.login_another_user(self.url, self.phone2, self.code2) resp = api2.get_botcommands(team_uid, group_jid).json() path = os.path.join(const.EXPECTED_RESULTS, 'bot_commands_member.json') expected = read_json(path) assert 'error' not in resp assert resp['result'] == expected['result']
def test_send_text_readonly_for_members_true(self): # создаем группу с readonly_for_members: true data = {'display_name': tools.generate_random_string(), 'public': False, 'readonly_for_members': True} resp = self.api.add_group(self.team_uid, data).json() group_jid = resp['result']['jid'] # добавляем участника в команду и в группу user2_jid = func.add_contact(self.api, self.team_uid, self.phone2)['jid'] func.add_member_to_group(self.api, self.team_uid, group_jid, user2_jid, 'member') auth_cookies = auth.login_with_cookies(self.url, self.phone2, self.code2) api2 = API(self.url, auth_cookies, is_token_auth=False) msg_data = {'text': tools.generate_random_string()} resp = api2.send_msg_text(self.team_uid, group_jid, msg_data).json() assert resp['error'] == const.ACCESS_DENIED
def test_add_reaction_member(self): # создаем команду team_uid = func.add_team(self.api)['uid'] # добавляем участника member_jid = func.add_contact(self.api, team_uid, self.phone2)['jid'] # добавляем гуппу group_jid = func.add_group(self.api, team_uid)['jid'] # добавляем участника к группе func.add_member_to_group(self.api, team_uid, group_jid, member_jid, 'member') text = f'Hello, my friend {tools.generate_random_string()}' message_id = func.send_text(self.api, team_uid, group_jid, text=text)['message_id'] api2 = auth.login_another_user(self.url, self.phone2, self.code2) resp = api2.add_edit_reaction(team_uid, message_id, self.reaction1).json() assert 'error' not in resp assert resp['result']['name'] == self.reaction1 assert resp['result']['sender'] == member_jid
def test_get_messages_unread(self): user2_jid = func.add_contact(self.api, self.team_uid, self.phone2)['jid'] group_jid = func.add_group(self.api, self.team_uid)['jid'] func.add_member_to_group(self.api, self.team_uid, group_jid, user2_jid, 'admin') # добавляем сообщения в цикле exp_msg = {} for i in range(5): # эта магия с i для того, чтобы ключи словаря exp_msg совпадали с ключами в resp т.к. в ответе есть всегда 2 дефолтных сообщения i = i + 1 text = 'msg_{}_{}'.format(tools.generate_random_string(7), i) exp_msg[i] = text func.send_text(self.api, self.team_uid, group_jid, text) auth_cookies = auth.login_with_cookies(self.url, self.phone2, self.code2) api2 = API(self.url, auth_cookies, is_token_auth=False) params = {'unread': True} resp = api2.get_messages(self.team_uid, group_jid, params).json() assert 'error' not in resp['result'] assert len(resp['result']['messages']) == 6 num = 5 while num > 0: assert resp['result']['messages'][num]['content']['text'] == exp_msg[num] num = num - 1
def test_get_messages_sender(self): # создаем команду team_uid = func.add_team(self.api)['uid'] # приглашаем пользователей user1_jid = func.get_my_jid(self.api, team_uid) user2_jid = func.add_contact(self.api, team_uid, self.phone2)['jid'] user3_jid = func.add_contact(self.api, team_uid, self.phone3)['jid'] # добавляем участников к группе group_jid = func.add_group(self.api, team_uid)['jid'] func.add_member_to_group(self.api, team_uid, group_jid, user2_jid, 'member') func.add_member_to_group(self.api, team_uid, group_jid, user3_jid, 'admin') # добавляем сообщения api2 = auth.login_another_user(self.url, self.phone2, self.code2) api3 = auth.login_another_user(self.url, self.phone3, self.code3) text = 'msg_{}'.format(tools.generate_random_string(7)) func.send_text(self.api, team_uid, group_jid, text) func.send_text(api2, team_uid, group_jid, text) func.send_text(api3, team_uid, group_jid, text) params = { 'sender': f'{user1_jid},{user2_jid}', } resp = self.api.get_filtered_messages(team_uid, params).json() assert 'error' not in resp assert tools.is_items_exist_in_list_of_dict( resp['result']['objects'], 'from', user1_jid, ) assert tools.is_items_exist_in_list_of_dict( resp['result']['objects'], 'from', user2_jid, ) assert not tools.is_items_exist_in_list_of_dict( resp['result']['objects'], 'from', user3_jid, )
def test_get_messages_chat_type(self): # создаем команду team_uid = func.add_team(self.api)['uid'] # приглашаем пользователей user2_jid = func.add_contact(self.api, team_uid, self.phone2)['jid'] # добавляем участников к группе group_jid = func.add_group(self.api, team_uid)['jid'] func.add_member_to_group(self.api, team_uid, group_jid, user2_jid, 'member') # добавляем сообщения pattern = 'msg' text = f'{pattern}_{tools.generate_random_string(7)}' msg1 = f'1_{text}' msg2 = f'2_{text}' func.send_text(self.api, team_uid, group_jid, msg1) func.send_text(self.api, team_uid, user2_jid, msg2) params = { 'chat_type': 'direct', } resp = self.api.get_filtered_messages(team_uid, params).json() assert 'error' not in resp assert len(resp['result']['objects']) == 1 assert resp['result']['objects'][0]['chat_type'] == 'direct' assert resp['result']['objects'][0]['content']['text'] == msg2
def test_get_all_my_reactions_member(self): reactions = [self.reaction1, self.reaction2, self.reaction3] # создаем команду team_uid = func.add_team(self.api)['uid'] # добавляем участника member_jid = func.add_contact(self.api, team_uid, self.phone2)['jid'] # добавляем гуппу group_jid = func.add_group(self.api, team_uid)['jid'] # добавляем участника к группе func.add_member_to_group(self.api, team_uid, group_jid, member_jid, 'member') text = f'Hello, my friend {tools.generate_random_string()}' api2 = auth.login_another_user(self.url, self.phone2, self.code2) message_id = func.send_text(api2, team_uid, group_jid, text=text)['message_id'] for reaction in reactions: api2.add_edit_reaction(team_uid, message_id, reaction).json() resp = api2.get_my_reactions_on_message(team_uid, message_id).json() assert 'error' not in resp for reaction in reactions: assert tools.is_items_exist_in_list_of_dict( resp['result'], 'name', reaction) for item in resp['result']: assert item['sender'] == member_jid