def test_valid_message_id_unpin(url, user_1, default_message, public_channel_1): """ Test whether the message_id is a valid id. """ request_message_pin(url, user_1['token'], default_message['message_id']) ret_unpinned = request_message_unpin(url, user_1['token'], default_message['message_id'] + 1) assert ret_unpinned.status_code == InputError.code msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello World!").json() request_message_pin(url, user_1['token'], msg_1['message_id']) ret_unpinned_1 = request_message_unpin(url, user_1['token'], msg_1['message_id'] - 2) assert ret_unpinned_1.status_code == InputError.code msg_2 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Now Way!?").json() request_message_pin(url, user_1['token'], msg_2['message_id']) ret_unpinned_2 = request_message_pin(url, user_1['token'], msg_2['message_id'] + 100) assert ret_unpinned_2.status_code == InputError.code requests.delete(url + '/clear')
def test_unreact_correct_message_thumbsdown(url, user_1, user_2, public_channel_1): """ Basic test for unreacting a react_id in a message. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hola").json() msg_2 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Mate").json() request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN) request_message_react(url, user_2['token'], msg_2['message_id'], THUMBS_DOWN) request_message_unreact(url, user_2['token'], msg_2['message_id'], THUMBS_DOWN) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() count_msg_unreacted_1 = 0 for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] == THUMBS_DOWN: if user_2['u_id'] not in react['u_ids'] and (curr_message['message'] == 'Mate'): count_msg_unreacted_1 += 1 assert count_msg_unreacted_1 == 1 requests.delete(url + '/clear')
def test_user_is_member_of_channel_with_message_unpin(url, user_1, user_2, user_3, user_4, public_channel_2): """ Test for user unpinning a message in a channel that they are not a member of. """ msg_1 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "I am amazing!").json() msg_2 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "No you're not!").json() request_message_pin(url, user_2['token'], msg_1['message_id']) request_message_pin(url, user_2['token'], msg_2['message_id']) ret_unpinned_1 = request_message_unpin(url, user_3['token'], msg_1['message_id']) ret_unpinned_2 = request_message_unpin(url, user_4['token'], msg_2['message_id']) assert ret_unpinned_1.status_code == AccessError.code assert ret_unpinned_2.status_code == AccessError.code requests.delete(url + '/clear')
def test_unpin_other_messages(url, user_1, user_2, user_3, public_channel_2): """ Test for unpinning other user's messages. """ requests.post(f"{url}/channel/join", json={ 'token': user_1['token'], 'channel_id': public_channel_2['channel_id'] }) requests.post(f"{url}/channel/join", json={ 'token': user_3['token'], 'channel_id': public_channel_2['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hello World!").json() msg_2 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hi").json() msg_3 = request_message_send(url, user_3['token'], public_channel_2['channel_id'], "What?!").json() msg_4 = request_message_send(url, user_3['token'], public_channel_2['channel_id'], "1521 Comp!").json() request_message_pin(url, user_2['token'], msg_1['message_id']) request_message_pin(url, user_2['token'], msg_2['message_id']) request_message_pin(url, user_2['token'], msg_3['message_id']) request_message_pin(url, user_2['token'], msg_4['message_id']) request_message_unpin(url, user_2['token'], msg_1['message_id']) request_message_unpin(url, user_2['token'], msg_3['message_id']) request_message_unpin(url, user_2['token'], msg_4['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_1['token'], 'channel_id': public_channel_2['channel_id'], 'start': 0, }).json() count_msg_unpinned = 0 for curr_message in message_list['messages']: if not curr_message['is_pinned'] and (curr_message['message'] in [ 'Hello World!', 'What?!', "1521 Comp!" ]): count_msg_unpinned += 1 assert count_msg_unpinned == 3 requests.delete(url + '/clear')
def test_unreact_in_private_channel(url, user_1, user_2, user_3, private_channel_2): """ Test for unreacting in a private channel. """ requests.post(f"{url}/channel/invite", json={ 'token': user_2['token'], 'channel_id': private_channel_2['channel_id'], 'u_id': user_3['u_id'], }) msg_1 = request_message_send(url, user_2['token'], private_channel_2['channel_id'], "Be right back").json() request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP) request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN) request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': private_channel_2['channel_id'], 'start': 0, }).json() for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] == THUMBS_UP: assert user_3['u_id'] not in react['u_ids'] elif react['react_id'] == THUMBS_DOWN: assert user_3['u_id'] not in react['u_ids'] requests.delete(url + '/clear')
def test_search_not_in_channel(url, user_1, user_2, public_channel_1): """Test searching messages when the user has not been part of the channel before """ query_str = "ZzZ" request_message_send(url, user_2['token'], public_channel_1['channel_id'], query_str) msg_list = requests.get(f'{url}/search', params={ 'token': user_1['token'], 'query_str': query_str, }).json() assert len(msg_list['messages']) == 0 requests.delete(url + '/clear')
def test_flockr_owner_unreact_messages(url, user_1, user_2, public_channel_2): """ (Assumption Test) Test for a flockr owner unreacting a react_id in a message from outside the channel. """ requests.post(f"{url}/channel/join", json={ 'token': user_1['token'], 'channel_id': public_channel_2['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hola").json() request_message_react(url, user_1, msg_1['message_id'], THUMBS_DOWN) requests.post(f"{url}/channel/leave", json={ 'token': user_1['token'], 'channel_id': public_channel_2['channel_id'] }) request_message_unreact(url, user_1, msg_1['message_id'], THUMBS_DOWN) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_2['channel_id'], 'start': 0, }).json() for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] == THUMBS_UP: assert user_1['u_id'] not in react['u_ids'] elif react['react_id'] == THUMBS_DOWN: assert user_1['u_id'] not in react['u_ids'] requests.delete(url + '/clear')
def test_unreact_multiple_messages(url, user_1, user_2, user_3, public_channel_2): """ Test for unreacting multiple messages. """ requests.post(f"{url}/channel/join", json={ 'token': user_1['token'], 'channel_id': public_channel_2['channel_id'] }) requests.post(f"{url}/channel/join", json={ 'token': user_3['token'], 'channel_id': public_channel_2['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hola").json() msg_2 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Mate").json() request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hi").json() msg_4 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "What?").json() msg_5 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "OKAY").json() msg_6 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "I").json() msg_7 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "Am").json() msg_8 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "Good").json() request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP) request_message_react(url, user_3['token'], msg_2['message_id'], THUMBS_UP) request_message_react(url, user_3['token'], msg_4['message_id'], THUMBS_UP) request_message_react(url, user_3['token'], msg_5['message_id'], THUMBS_UP) request_message_react(url, user_3['token'], msg_6['message_id'], THUMBS_UP) request_message_react(url, user_3['token'], msg_7['message_id'], THUMBS_DOWN) request_message_react(url, user_3['token'], msg_8['message_id'], THUMBS_DOWN) request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_UP) request_message_unreact(url, user_3['token'], msg_4['message_id'], THUMBS_UP) request_message_unreact(url, user_3['token'], msg_5['message_id'], THUMBS_UP) request_message_unreact(url, user_3['token'], msg_6['message_id'], THUMBS_UP) request_message_unreact(url, user_3['token'], msg_8['message_id'], THUMBS_DOWN) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_2['channel_id'], 'start': 0, }).json() count_msg_unreacted_1 = 0 for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] in (THUMBS_UP, THUMBS_DOWN): if user_3['u_id'] not in react['u_ids']: count_msg_unreacted_1 += 1 # Each message has 2 react options, and there should be a total of 13 non-active reacts for user_3. assert count_msg_unreacted_1 == 14 requests.delete(url + '/clear')
def test_search_no_match(url, user_1, public_channel_1): """Test searching messages with 0 results """ msg_str_1 = "Welcome to group 1!" query_str = "ZzZ" request_message_send(url, user_1['token'], public_channel_1['channel_id'], msg_str_1) msg_list = requests.get(f'{url}/search', params={ 'token': user_1['token'], 'query_str': query_str, }).json() assert len(msg_list['messages']) == 0 requests.delete(url + '/clear')
def test_unpin_in_private_channel(url, user_1, user_2, private_channel_1): """ Test for unpinning messages in private channels. """ requests.post(f"{url}/channel/invite", json={ 'token': user_1['token'], 'channel_id': private_channel_1['channel_id'], 'u_id': user_2['u_id'], }).json() msg_1 = request_message_send(url, user_1['token'], private_channel_1['channel_id'], "Become").json() msg_2 = request_message_send(url, user_2['token'], private_channel_1['channel_id'], "A").json() msg_3 = request_message_send(url, user_2['token'], private_channel_1['channel_id'], "Hero").json() request_message_pin(url, user_1['token'], msg_1['message_id']) request_message_pin(url, user_1['token'], msg_2['message_id']) request_message_pin(url, user_1['token'], msg_3['message_id']) request_message_unpin(url, user_1['token'], msg_2['message_id']) request_message_unpin(url, user_1['token'], msg_3['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_1['token'], 'channel_id': private_channel_1['channel_id'], 'start': 0, }).json() count_msg_unpinned = 0 for curr_message in message_list['messages']: if not curr_message['is_pinned'] and (curr_message['message'] in ['A', "Hero"]): count_msg_unpinned += 1 assert count_msg_unpinned == 2 requests.delete(url + '/clear')
def test_message_already_unreacted(url, user_1, user_2, public_channel_1): """ Test for unreacting to a message that is already unreacted to. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json() msg_2 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Hola").json() request_message_react(url, user_2['token'], msg_2['message_id'], THUMBS_UP) ret_unreact_1 = request_message_unreact(url, user_2['token'], msg_1['message_id'], THUMBS_UP) assert ret_unreact_1.status_code == InputError.code ret_unreact_2 = request_message_unreact(url, user_2['token'], msg_2['message_id'], THUMBS_DOWN) assert ret_unreact_2.status_code == InputError.code requests.delete(url + '/clear')
def test_search_leave_channel(url, user_1, public_channel_1): """Test searching messages when user has left channel the channel """ query_str = "ZzZ" request_message_send(url, user_1['token'], public_channel_1['channel_id'], query_str) requests.post(f'{url}/channel/leave', json={ 'token': user_1['token'], 'channel_id': public_channel_1['channel_id'] }) msg_list = requests.get(f'{url}/search', params={ 'token': user_1['token'], 'query_str': query_str, }).json() assert len(msg_list['messages']) == 0 requests.delete(url + '/clear')
def test_non_owner_pin(url, user_1, user_2, public_channel_1): """ Test for a user who is not an owner of the channel, pinning a message. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello World!").json() request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Now Way!?").json() ret_pinned = request_message_pin(url, user_2['token'], msg_1['message_id']) assert ret_pinned.status_code == AccessError.code requests.delete(url + '/clear')
def test_already_pinned(url, user_1, user_2, public_channel_1): """ Test for pinning an already pinned message. """ requests.post(f"{url}/channel/join", json={ 'token': user_1['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello World!").json() request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Now Way!?").json() request_message_pin(url, user_1['token'], msg_1['message_id']) ret_pinned = request_message_pin(url, user_1['token'], msg_1['message_id']) assert ret_pinned.status_code == InputError.code requests.delete(url + '/clear')
def test_added_owner_can_unpin(url, user_1, user_2, public_channel_1): """ Test for unpinning messages from a recently added owner. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello World!").json() msg_2 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Hi").json() request_message_pin(url, user_1['token'], msg_1['message_id']) request_message_pin(url, user_1['token'], msg_2['message_id']) requests.post(f"{url}/channel/addowner", json={ 'token': user_1['token'], 'channel_id': public_channel_1['channel_id'], 'u_id': user_2['u_id'], }).json() request_message_unpin(url, user_2['token'], msg_2['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() for curr_message in message_list['messages']: if curr_message['message_id'] == msg_2['message_id']: assert not curr_message['is_pinned'] requests.delete(url + '/clear')
def test_unreact_owned_messages(url, user_1, user_2, public_channel_1): """ Test for unreacting owned messages. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hola").json() msg_2 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Mate").json() msg_3 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Hi").json() msg_4 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "What?").json() request_message_react(url, user_2['token'], msg_2['message_id'], THUMBS_UP) request_message_react(url, user_2['token'], msg_3['message_id'], THUMBS_UP) request_message_react(url, user_2['token'], msg_4['message_id'], THUMBS_UP) request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP) request_message_unreact(url, user_2['token'], msg_2['message_id'], THUMBS_UP) request_message_unreact(url, user_2['token'], msg_3['message_id'], THUMBS_UP) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() count_msg_unreacted_1 = 0 for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] == THUMBS_UP: if user_2['u_id'] not in react['u_ids'] and (curr_message['message'] in [ 'Hola', 'Hi', 'Mate' ]): count_msg_unreacted_1 += 1 assert count_msg_unreacted_1 == 3 requests.delete(url + '/clear')
def test_flockr_owner_unpin_msg_in_nonmember_channels(url, user_1, user_2, private_channel_2): """ (Assumption Testing) Test for the ability of flockr owner to unpin messages in channels that they are not a part of. (Assumption) First user to register is flockr owner. """ request_message_send(url, user_2['token'], private_channel_2['channel_id'], "I").json() msg_2 = request_message_send(url, user_2['token'], private_channel_2['channel_id'], "Am").json() msg_3 = request_message_send(url, user_2['token'], private_channel_2['channel_id'], "Insane").json() request_message_pin(url, user_1['token'], msg_2['message_id']) request_message_pin(url, user_1['token'], msg_3['message_id']) request_message_unpin(url, user_1['token'], msg_3['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': private_channel_2['channel_id'], 'start': 0, }).json() count_msg_pinned = 0 for curr_message in message_list['messages']: if not curr_message['is_pinned'] and (curr_message['message'] in ['I', "Insane"]): count_msg_pinned += 1 assert count_msg_pinned == 2 requests.delete(url + '/clear')
def test_authorised_to_unreact(url, user_1, public_channel_1): """ Test for logged out user trying to unreact to a message. """ msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json() request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP) requests.post(f"{url}/auth/logout", json={ 'token': user_1['token'] }) ret_unreact = request_message_unreact(url, user_1['token'], msg_1['message_id'], THUMBS_UP) assert ret_unreact.status_code == AccessError.code requests.delete(url + '/clear')
def test_valid_message_id_unreact(url, user_1, public_channel_1): """ Test if the message exists or not. """ msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json() request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP) ret_unreact_1 = request_message_unreact(url, user_1['token'], msg_1['message_id'] + 1, THUMBS_UP) assert ret_unreact_1.status_code == InputError.code ret_unreact_2 = request_message_unreact(url, user_1['token'], msg_1['message_id'] - 1, THUMBS_UP) assert ret_unreact_2.status_code == InputError.code ret_unreact_3 = request_message_unreact(url, user_1['token'], msg_1['message_id'] + 500, THUMBS_UP) assert ret_unreact_3.status_code == InputError.code requests.delete(url + '/clear')
def test_valid_react_id_unreact(url, user_1, public_channel_1): """ Test if the specific react exists. """ msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json() request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP) ret_unreact_1 = request_message_unreact(url, user_1['token'], msg_1['message_id'], 3) assert ret_unreact_1.status_code == InputError.code ret_unreact_2 = request_message_unreact(url, user_1['token'], msg_1['message_id'], -1) assert ret_unreact_2.status_code == InputError.code ret_unreact_3 = request_message_unreact(url, user_1['token'], msg_1['message_id'], -13) assert ret_unreact_3.status_code == InputError.code ret_unreact_4 = request_message_unreact(url, user_1['token'], msg_1['message_id'], 21) assert ret_unreact_4.status_code == InputError.code requests.delete(url + '/clear')
def test_authorised_to_unpin(url, user_1, public_channel_1): """ Test for a logged out user trying to unpin a message. """ msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "I am amazing!").json() request_message_pin(url, user_1['token'], msg_1['message_id']) requests.post(f"{url}/auth/logout", json={ 'token': user_1['token'], }).json() ret_unpinned = request_message_unpin(url, user_1['token'], msg_1['message_id']) assert ret_unpinned.status_code == AccessError.code requests.delete(url + '/clear')
def test_unreact_latest_reacts_from_message(url, user_1, user_2, user_3, public_channel_1): """ Test for unreacting latest react from the same message. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) requests.post(f"{url}/channel/join", json={ 'token': user_3['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hola").json() request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP) request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_DOWN) request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_UP) request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN) request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN) request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP) request_message_unreact(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN) request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_UP) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] == THUMBS_UP: assert user_1['u_id'] not in react['u_ids'] assert user_2['u_id'] not in react['u_ids'] assert user_3['u_id'] not in react['u_ids'] elif react['react_id'] == THUMBS_DOWN: assert user_1['u_id'] in react['u_ids'] assert user_2['u_id'] not in react['u_ids'] assert user_3['u_id'] not in react['u_ids'] requests.delete(url + '/clear')
def test_nonmember_unreact(url, user_2, user_3, public_channel_2): """ Test for users outside of the channel that the message is in trying to unreact that message. """ requests.post(f"{url}/channel/join", json={ 'token': user_3['token'], 'channel_id': public_channel_2['channel_id'] }) msg_1 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "Hello").json() request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP) requests.post(f"{url}/channel/leave", json={ 'token': user_3['token'], 'channel_id': public_channel_2['channel_id'] }) ret_unreact = request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_UP) assert ret_unreact.status_code == AccessError.code requests.delete(url + '/clear')
def test_pin_owned_message(url, user_1, public_channel_1): """ Test for pinning the user's own messages. """ msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello World!").json() request_message_pin(url, user_1['token'], msg_1['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_1['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() for curr_message in message_list['messages']: if curr_message['message_id'] == msg_1['message_id']: assert curr_message['is_pinned'] requests.delete(url + '/clear')
def test_unreact_same_react_from_different_users(url, user_1, user_2, user_3, public_channel_1): """ Test for unreacting the same react from a message from multiple users (thumbs down). """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) requests.post(f"{url}/channel/join", json={ 'token': user_3['token'], 'channel_id': public_channel_1['channel_id'] }) msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hola").json() request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_DOWN) request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN) request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN) request_message_unreact(url, user_1['token'], msg_1['message_id'], THUMBS_DOWN) request_message_unreact(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN) request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() for curr_message in message_list['messages']: for react in curr_message['reacts']: if react['react_id'] == THUMBS_DOWN: assert user_1['u_id'] not in react['u_ids'] assert user_2['u_id'] not in react['u_ids'] assert user_3['u_id'] not in react['u_ids'] requests.delete(url + '/clear')
def test_pin_correct_message(url, user_1, user_2, public_channel_1): """ Test for pinning the correct message. """ requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'] }) request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello World!").json() msg_2 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hi").json() msg_3 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "What?!").json() request_message_send(url, user_2['token'], public_channel_1['channel_id'], "1521 Comp!").json() request_message_pin(url, user_1['token'], msg_2['message_id']) request_message_pin(url, user_1['token'], msg_3['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_2['token'], 'channel_id': public_channel_1['channel_id'], 'start': 0, }).json() count_msg_pinned = 0 for curr_message in message_list['messages']: if curr_message['is_pinned'] and (curr_message['message'] in ['Hi', 'What?!']): count_msg_pinned += 1 assert count_msg_pinned == 2 requests.delete(url + '/clear')
def test_search_standard(url, user_1, user_2, user_3, user_4, public_channel_1, public_channel_2, public_channel_3, public_channel_4): """Test searching messages in multiple channels """ msg_str_1 = "Welcome to group 1!" msg_str_2 = "Welcome to group 2!" msg_str_3 = "Welcome to group 3!" msg_str_4 = "Welcome to group 4!" msg_str_5 = "Hiya guys!" msg_str_6 = "sup" msg_str_7 = "Let's get down to business!" query_str = "Welcome" requests.post(f'{url}/channel/join', json={ 'token': user_1['token'], 'channel_id': public_channel_2['channel_id'] }) requests.post(f'{url}/channel/join', json={ 'token': user_1['token'], 'channel_id': public_channel_3['channel_id'] }) requests.post(f'{url}/channel/join', json={ 'token': user_1['token'], 'channel_id': public_channel_4['channel_id'] }) request_message_send(url, user_1['token'], public_channel_1['channel_id'], msg_str_1) request_message_send(url, user_2['token'], public_channel_2['channel_id'], msg_str_2) request_message_send(url, user_3['token'], public_channel_3['channel_id'], msg_str_3) request_message_send(url, user_4['token'], public_channel_4['channel_id'], msg_str_4) request_message_send(url, user_1['token'], public_channel_1['channel_id'], msg_str_5) request_message_send(url, user_2['token'], public_channel_2['channel_id'], msg_str_6) request_message_send(url, user_3['token'], public_channel_3['channel_id'], msg_str_7) msg_list = requests.get(f'{url}/search', params={ 'token': user_1['token'], 'query_str': query_str, }).json() msg_count = 0 msg_cmp_2 = [] for msg in msg_list['messages']: msg_cmp_2.append(msg['message']) msg_count += 1 assert msg_count == 4 msg_cmp_1 = [msg_str_1, msg_str_2, msg_str_3, msg_str_4] msg_cmp_1.sort() msg_cmp_2.sort() assert msg_cmp_1 == msg_cmp_2 requests.delete(url + '/clear')
def test_unpin_multiple_messages(url, user_1, user_2, user_3, user_4, public_channel_3): """ Test for unpinning multiple different messages. """ requests.post(f"{url}/channel/join", json={ 'token': user_1['token'], 'channel_id': public_channel_3['channel_id'] }) requests.post(f"{url}/channel/join", json={ 'token': user_2['token'], 'channel_id': public_channel_3['channel_id'] }) requests.post(f"{url}/channel/join", json={ 'token': user_4['token'], 'channel_id': public_channel_3['channel_id'] }) requests.post(f"{url}/channel/addowner", json={ 'token': user_3['token'], 'channel_id': public_channel_3['channel_id'], 'u_id': user_4['u_id'], }).json() msg_1 = request_message_send(url, user_1['token'], public_channel_3['channel_id'], "Intelligence").json() msg_2 = request_message_send(url, user_2['token'], public_channel_3['channel_id'], "Is").json() msg_3 = request_message_send(url, user_2['token'], public_channel_3['channel_id'], "The").json() request_message_send(url, user_3['token'], public_channel_3['channel_id'], "Ability").json() msg_5 = request_message_send(url, user_3['token'], public_channel_3['channel_id'], "To Adapt").json() msg_6 = request_message_send(url, user_3['token'], public_channel_3['channel_id'], "To").json() msg_7 = request_message_send(url, user_4['token'], public_channel_3['channel_id'], "Change").json() request_message_pin(url, user_3['token'], msg_1['message_id']) request_message_pin(url, user_3['token'], msg_2['message_id']) request_message_pin(url, user_4['token'], msg_3['message_id']) request_message_pin(url, user_4['token'], msg_5['message_id']) request_message_pin(url, user_4['token'], msg_6['message_id']) request_message_pin(url, user_4['token'], msg_7['message_id']) request_message_unpin(url, user_4['token'], msg_1['message_id']) request_message_unpin(url, user_4['token'], msg_2['message_id']) request_message_unpin(url, user_3['token'], msg_3['message_id']) request_message_unpin(url, user_4['token'], msg_5['message_id']) request_message_unpin(url, user_4['token'], msg_7['message_id']) message_list = requests.get(f"{url}/channel/messages", params={ 'token': user_1['token'], 'channel_id': public_channel_3['channel_id'], 'start': 0, }).json() count_msg_unpinned = 0 for curr_message in message_list['messages']: if not curr_message['is_pinned'] and (curr_message['message'] in [ 'Intelligence', 'Is', "The", "Ability", "To Adapt", "Change" ]): count_msg_unpinned += 1 assert count_msg_unpinned == 6 requests.delete(url + '/clear')