def test_remove_user(new_user, new_user_2): glob_users = get_users() channel = channels_create(new_user['token'], "new_channel", False) channel_invite(new_user['token'], channel['channel_id'], new_user_2['u_id']) user_remove(new_user['token'], new_user_2['u_id']) assert not new_user_2 in get_channels()[channel['channel_id']]['members'] with pytest.raises(InputError): auth_login(glob_users[new_user_2['u_id']]['email'], glob_users[new_user_2['u_id']]['password_hash'])
def test_removing_message_as_owner(new_channel_and_user): ''' tests the sucessful removal of a message by the channel owner''' author = auth_register("*****@*****.**", "password", "first_name1", "last_name1") channel_invite(new_channel_and_user['token'], new_channel_and_user['channel_id'], author['u_id']) message = message_send(author['token'], new_channel_and_user['channel_id'], 'a') message_remove(new_channel_and_user['token'], message['message_id'])
def test_removing_authored_message(new_channel_and_user): """ Tests the successful removal of a message from a user that sent it""" author = auth_register("*****@*****.**", "password", "first_name1", "last_name1") channel_invite(new_channel_and_user['token'], new_channel_and_user['channel_id'], author['u_id']) message = message_send(author['token'], new_channel_and_user['channel_id'], 'a') message_remove(author['token'], message['message_id'])
def test_message_pin_not_owner(new_channel_and_user, new_channel_and_user_2): """ Test that try to pin a message but not the owner""" message = message_send(new_channel_and_user['token'], new_channel_and_user['channel_id'], 'adcd') channel_invite(new_channel_and_user['token'], new_channel_and_user['channel_id'], new_channel_and_user_2['u_id']) with pytest.raises(InputError): message_pin(new_channel_and_user_2['token'], message['message_id'])
def test_editing_authored_message_with_empty_message(new_channel_and_user): """ Tests replacing a message with an empty message removes the messages""" author = auth_register("*****@*****.**", "password", "first_name1", "last_name1") channel_invite(new_channel_and_user['token'], new_channel_and_user['channel_id'], author['u_id']) message = message_send(author['token'], new_channel_and_user['channel_id'], 'a') message_edit(author['token'], message['message_id'], '') with pytest.raises(InputError): message_edit(author['token'], message['message_id'], '')
def test_message_unreact_ueser_not_react(new_channel_and_user, new_channel_and_user_2): """ Test that if a uer try to unreact a message which is not his/her reaction""" message = message_send(new_channel_and_user['token'], new_channel_and_user['channel_id'], 'adcd') message_react(new_channel_and_user['token'], message['message_id'], 1) channel_invite(new_channel_and_user['token'], new_channel_and_user['channel_id'], new_channel_and_user_2['u_id']) with pytest.raises(InputError): message_unreact(new_channel_and_user_2['token'], message['message_id'], 1)
def test_removing_a_message_neither_author_nor_owner(new_channel_and_user): """Tests that an error is thrown when the user is not authorised to remove the message A user is not authorised if they are i not the author of the message and ii: not an admin/owner of the chat """ not_author = auth_register("*****@*****.**", "password", "first_name1", "last_name1") message = message_send(new_channel_and_user['token'], new_channel_and_user['channel_id'], 'a') channel_invite(new_channel_and_user['token'], new_channel_and_user['channel_id'], not_author['u_id']) with pytest.raises(AccessError): assert message_remove(not_author['token'], message['message_id'])
def test_channel_invite_valid_inputs(user_dav, user_jas, channel_dav): ''' user_dav invites user_jas to channel_dav ''' channel_invite(user_dav['token'], channel_dav['channel_id'], user_jas['u_id']) member_jas = {} member_jas['u_id'] = user_jas['u_id'] member_jas['name_first'] = "jas" member_jas['name_last'] = "zhu" member_jas['profile_img_url'] = "http://localhost:8080/imgurl/default.png" channel_dav_detail = channel_details(user_dav['token'], channel_dav['channel_id']) assert member_jas in channel_dav_detail['all_members']
def test_channel_invite_self_invite(user_dav, channel_dav, user_jas): # invite jas to the channel channel_invite(user_dav['token'], channel_dav['channel_id'], user_jas['u_id']) # jas invite himself again channel_invite(user_jas['token'], channel_dav['channel_id'], user_jas['u_id']) # create member jas member_jas = {} member_jas['u_id'] = user_jas['u_id'] member_jas['name_first'] = "jas" member_jas['name_last'] = "zhu" member_jas['profile_img_url'] = "http://localhost:8080/imgurl/default.png" # set up channel details channel_dav_detail = channel_details(user_dav['token'], channel_dav['channel_id']) assert member_jas in channel_dav_detail['all_members']
def test_channel_invite_already_member(user_dav, user_jas, channel_dav): # First invitation channel_invite(user_dav['token'], channel_dav['channel_id'], user_jas['u_id']) # Second invitation channel_invite(user_dav['token'], channel_dav['channel_id'], user_jas['u_id']) # create member jas member_jas = {} member_jas['u_id'] = user_jas['u_id'] member_jas['name_first'] = "jas" member_jas['name_last'] = "zhu" member_jas['profile_img_url'] = "http://localhost:8080/imgurl/default.png" # set up channel details channel_dav_detail = channel_details(user_dav['token'], channel_dav['channel_id']) assert member_jas in channel_dav_detail['all_members']
def test_channel_details(user_chas, user_dav, user_jas, channel_dav): # Invite jas and chas to the channel channel_invite(user_dav['token'], channel_dav['channel_id'], user_jas['u_id']) channel_invite(user_dav['token'], channel_dav['channel_id'], user_chas['u_id']) # Achieve the detail of the channel by dev channel_dav_detail = channel_details(user_dav['token'], channel_dav['channel_id']) # Set up the member card for every member member_dav = {} member_dav['u_id'] = user_dav['u_id'] member_dav['name_first'] = "dav" member_dav['name_last'] = "zhu" member_dav['profile_img_url'] = "http://localhost:8080/imgurl/default.png" member_jas = {} member_jas['u_id'] = user_jas['u_id'] member_jas['name_first'] = "jas" member_jas['name_last'] = "zhu" member_jas['profile_img_url'] = "http://localhost:8080/imgurl/default.png" member_chas = {} member_chas['u_id'] = user_chas['u_id'] member_chas['name_first'] = "chas" member_chas['name_last'] = "zhu" member_chas['profile_img_url'] = "http://localhost:8080/imgurl/default.png" assert channel_dav_detail['name'] == "channel_dav" assert channel_dav_detail['owner_members'][0] == member_dav assert member_chas in channel_dav_detail['all_members'] assert member_dav in channel_dav_detail['all_members'] assert member_jas in channel_dav_detail['all_members']
def channel_invite_wsgi(): json = request.get_json() return jsonify( channel_invite(json['token'], int(json['channel_id']), int(json['u_id'])))
def test_channel_invite_not_a_member(user_jas, channel_dav, user_dav): ''' inviting user_dav to a channel that user_jas is not part of ''' with pytest.raises(AccessError): channel_invite(user_jas['token'], channel_dav['channel_id'], user_jas['u_id'])
def test_invalid_user(user_dav, channel_dav): ''' tests that an input error is thrown when an invalid user_id is provided''' with pytest.raises(InputError): assert channel_invite(user_dav['token'], channel_dav['channel_id'], -1)
def test_invalid_channel_invite(user_dav, user_jas): with pytest.raises(InputError): assert channel_invite(user_dav['token'], "invalid channel id", user_jas['u_id'])