def test_user_profile_sethandle(): reset_all() data1 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id1 = data1['u_id'] token1 = data1['token'] data2 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') token2 = data2['token'] assert user_profile_sethandle(token1, 'jiah') == {} assert user_profile(token1, u_id1) == { 'u_id': u_id1, 'email': '*****@*****.**', 'name_first': 'jiahao', 'name_last': 'zhang', 'handle_str': 'jiah', } assert user_profile_sethandle(token2, 'alen') == {} #token changed after successful change handle_str #token1 = auth_login('*****@*****.**','123456')['token'] #token2 = auth_login('*****@*****.**','123456')['token'] with pytest.raises(InputError): user_profile_sethandle(token2, 'jiah') with pytest.raises(InputError): user_profile_sethandle(token1, 'alen') with pytest.raises(InputError): user_profile_sethandle(token1, 'a') with pytest.raises(InputError): user_profile_sethandle(token1, '123456789123456789123')
def test_user_profile_setemail(): reset_all() data1 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id1 = data1['u_id'] token1 = data1['token'] data2 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') token2 = data2['token'] assert user_profile_setemail(token1, '*****@*****.**') == {} #token changed after successful change email #check for new eamil login data3 = auth_login('*****@*****.**', 'password') token3 = data3['token'] assert user_profile(token3, u_id1) == { 'u_id': u_id1, 'email': '*****@*****.**', 'name_first': 'jiahao', 'name_last': 'zhang', 'handle_str': 'jiahaozhang', } ##token1 = auth_login('*****@*****.**','password')['token'] with pytest.raises(InputError): user_profile_setemail(token3, '5') with pytest.raises(InputError): user_profile_setemail(token3, '*****@*****.**') with pytest.raises(InputError): user_profile_setemail(token2, '*****@*****.**')
def test_channels_list_under_channel_join(): '''User 1 make 2 channels, User 2 joins them and channel list updates''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] #Creates Channel One under User One's token which adds user to channel channel_id = channels_create(token, "Channel One", True) user_one_channel_list = channels_list(token) assert len(user_one_channel_list['channels']) == 1 #Creates Channel Two under User One's token which adds user to channel channel_two_id = channels_create(token, "Channel Two", True) user_one_channel_list = channels_list(token) assert len(user_one_channel_list['channels']) == 2 #Register User Two data_two = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo') token_two = data_two['token'] #Assert that User Two's channel_list is empty user_two_channel_list = channels_list(token_two) assert bool(user_two_channel_list['channels']) is False #User Two joins Channel One and channel list is updated channel_join(token_two, channel_id['channel_id']) user_two_channel_list = channels_list(token_two) assert len(user_two_channel_list['channels']) == 1 #User Two joins Channel Two and channel list is updated channel_join(token_two, channel_two_id['channel_id']) user_two_channel_list = channels_list(token_two) assert len(user_two_channel_list['channels']) == 2
def test_user_profile(): #register an user for test purpose reset_all() data = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id1 = data['u_id'] token1 = data['token'] data1 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id2 = data1['u_id'] #sample invalid id and token invalid_u_id = -1 assert user_profile(token1, u_id1) == { 'u_id': u_id1, 'email': '*****@*****.**', 'name_first': 'jiahao', 'name_last': 'zhang', 'handle_str': 'jiahaozhang', } ## test to check another user assert user_profile(token1, u_id2) == { 'u_id': u_id2, 'email': '*****@*****.**', 'name_first': 'jiahao', 'name_last': 'zhang', 'handle_str': 'jiahaozhang', } with pytest.raises(InputError): user_profile(token1, invalid_u_id)
def test_channels_list_two_channels_create_three_channels(): '''Creates 3 channels but authorised user is part of 2 of them''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] #Creates Channel One under User One's token which adds user to channel channels_create(token, "Channel One", True) user_one_channel_list = channels_list(token) assert len(user_one_channel_list['channels']) == 1 #Creates Channel Two under User One's token which adds user to channel channels_create(token, "Channel Two", True) user_one_channel_list = channels_list(token) assert len(user_one_channel_list['channels']) == 2 #Register User Two data_two = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo') token_two = data_two['token'] #Creates Channel Three under User Two's token which adds user to channel channels_create(token_two, "Channel Three", True) # Asserts that User One is not part of Channel Three by checking User # One's channels list under their token user_one_channel_list = channels_list(token) assert len(user_one_channel_list['channels']) == 2 #Checks User Two's channels list user_two_channel_list = channels_list(token_two) assert len(user_two_channel_list['channels']) == 1
def test_channel_join(): '''Function should allow authorised user to join channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] assert channel_join(token_two, channel_id['channel_id']) == {}
def test_channel_invite(): '''This channel will invite new user to channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') new_user_id = data_two['u_id'] assert channel_invite(token, channel_id['channel_id'], new_user_id) == {}
def test_details_invalid_channel_member(): '''Function won't work if authorised user is not member of channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] with pytest.raises(AccessError): channel_details(token_two, channel_id['channel_id'])
def test_removeowner_non_owner(): '''Function cannot remove u_id from owners list if u_id is not channel owner''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') other_user_id = data_two['u_id'] with pytest.raises(InputError): channel_removeowner(token, channel_id['channel_id'], other_user_id)
def test_channel_invite_invalid_user_id(): '''New user can't be invited with invalid user id''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') new_user_id = data_two['u_id'] with pytest.raises(InputError): channel_invite(token, 2, new_user_id - 1)
def test_channel_addowner(): '''Function should add new user as owner of channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') other_user_id = data_two['u_id'] assert channel_addowner(token, channel_id['channel_id'], other_user_id) == {}
def test_channel_leave_non_member(): '''Authorised user can't use function if its not a channel member''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] with pytest.raises(AccessError): channel_leave(token_two, channel_id['channel_id'])
def test_channel_leave(): '''Authorised user is given permission to leave channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] channel_join(token_two, channel_id['channel_id']) assert channel_leave(token_two, channel_id['channel_id']) == {}
def test_channel_join_private_channel(): '''Authorised user can't join private channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', False) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] with pytest.raises(AccessError): channel_join(token_two, channel_id['channel_id'])
def test_removeowner_invalid_channel_id(): '''Function won't run with invalid channel_id''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) assert channel_id['channel_id'] == 1 data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') other_user_id = data_two['u_id'] with pytest.raises(InputError): channel_removeowner(token, 2, other_user_id)
def test_message_send_in_wrong_channel(): '''Send message in a channel that the user has not joined''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) assert channel_id['channel_id'] == 1 data_two = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token_two = data_two['token'] with pytest.raises(AccessError): message_send(token_two, channel_id['channel_id'], 'hello')
def test_channel_addowner_twice(): '''Function cannot add owner twice''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') other_user_id = data_two['u_id'] channel_addowner(token, channel_id['channel_id'], other_user_id) with pytest.raises(InputError): channel_addowner(token, channel_id['channel_id'], other_user_id)
def test_channel_join_invalid_channel_id(): '''Authorised user can't join channel with invalid channel id''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] assert channel_id['channel_id'] == 1 with pytest.raises(InputError): channel_join(token_two, 2)
def test_messages_nonmember(): '''Channel messages will not work if there is non-channel member requesting''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) message_send(token, channel_id['channel_id'], 'Song Hayoung > Choi Yena') data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] with pytest.raises(AccessError): channel_messages(token_two, channel_id['channel_id'], 0)
def test_invite_nonmember(): '''New user can't be invited if authorised user has not joined channel yet''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] data_three = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo') new_user_id = data_three['u_id'] with pytest.raises(AccessError): channel_invite(token_two, channel_id['channel_id'], new_user_id)
def test_channel_addowner_non_owner(): '''Function cannot add owner to channel if authorised user is not owner''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] data_three = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo') other_user_id = data_three['u_id'] with pytest.raises(AccessError): channel_addowner(token_two, channel_id['channel_id'], other_user_id)
def test_set_user_permission(reset): reset data = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') token = data['token'] data = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id1 = data['u_id'] data1 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id2 = data1['u_id'] assert user_permission(token, u_id2, 1) == {} assert user_permission(token, u_id1, 1) == {}
def test_edit_other(): '''Cannot edit another user's message when not admin/owner''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) message_id = message_send(token, channel_id['channel_id'], 'Hello World') data_two = auth_register('*****@*****.**', 'IZ*ONE', 'Yena', 'Choi') token_two = data_two['token'] channel_join(token_two, channel_id['channel_id']) with pytest.raises(AccessError): message_edit(token_two, message_id['message_id'], 'Promote IZ*ONE')
def test_removeowner_authorised_non_owner(): '''Function won't run if authorised user is not owner of channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') user_two_id = data_two['u_id'] channel_addowner(token, channel_id['channel_id'], user_two_id) data_three = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo') token_three = data_three['token'] with pytest.raises(AccessError): channel_removeowner(token_three, channel_id['channel_id'], user_two_id)
def test_channel_details(): '''Function should return some details of specified channel''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] user_id = data['u_id'] channel_id = channels_create(token, 'Channel One', True) data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi') token_two = data_two['token'] user_two_id = data_two['u_id'] channel_join(token_two, channel_id['channel_id']) channel_dict = channel_details(token, channel_id['channel_id']) assert channel_dict['name'] == 'Channel One' assert channel_dict['owner_members'] == [user_id] assert channel_dict['all_members'] == [user_id, user_two_id]
def test_stand_up_send(reset, get_user): reset token, channel_id = get_user invaild_channel_id = -1 data1 = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') token1 = data1['token'] ## creat another user to test 'user is not a member of the channel' standup_start(token, channel_id, 10) assert standup_send(token, channel_id, 'I like banana') == {} time.sleep(10) with pytest.raises( InputError): ## test for No current active standup in channel standup_send(token, channel_id, 'I like banana') standup_start(token, channel_id, 10) with pytest.raises(InputError): ## test for invalid channel_id standup_send(token, invaild_channel_id, 'I like banana') with pytest.raises( InputError): ## test 'user is not a member of the channel' standup_send(token1, channel_id, 'I like banana') with pytest.raises( InputError ): ## test for Message cannot be over 1000 characters long standup_send(token, channel_id, 'banan' * 205)
def test_worksapce_reset(reset): reset data = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') token1 = data['token'] assert workspace_reset() == {} with pytest.raises(AccessError): users_all(token1)
def test_message_send(): '''Send a normal message such as 'Hello World''' data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channel_id = channels_create(token, 'Channel One', True) message_id = message_send(token, channel_id['channel_id'], 'Hello World') assert isinstance(message_id['message_id'], int) is True
def test_channels_listall_zero_channels(): '''User One checks empty list of channels''' reset_data() data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang') token = data['token'] channels_list = channels_listall(token) assert bool(channels_list['channels']) is False
def test_user_profile_setname(): reset_all() data = auth_register('*****@*****.**', 'password', 'jiahao', 'zhang') u_id1 = data['u_id'] token1 = data['token'] assert user_profile_setname(token1, 'alen', 'banana') == {} #show user profile after successful change assert user_profile(token1, u_id1) == { 'u_id': u_id1, 'email': '*****@*****.**', 'name_first': 'alen', 'name_last': 'banana', 'handle_str': 'jiahaozhang', } #test for wrong input with pytest.raises(InputError): user_profile_setname(token1, 'i' * 60, 'banana') with pytest.raises(InputError): user_profile_setname(token1, 'alen', 'i' * 60) with pytest.raises(InputError): user_profile_setname(token1, 'alen', '') with pytest.raises(InputError): user_profile_setname(token1, '', 'banana')