def test_senddm_different_channels(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) dm_2 = dm_create_v1(user_2['token'], [user_3['auth_user_id']]) dm_3 = dm_create_v1(user_3['token'], [user_1['auth_user_id']]) msg1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Hello World!') msg2 = message_senddm_v1(user_2['token'], dm_2['dm_id'], 'Hello World!') msg3 = message_senddm_v1(user_3['token'], dm_3['dm_id'], 'Hello World!') assert type(msg1) == dict assert type(msg1['message_id']) == int assert type(msg2) == dict assert type(msg2['message_id']) == int assert type(msg3) == dict assert type(msg3['message_id']) == int assert dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages'][0]['message'] == "Hello World!" assert dm_messages_v1(user_2['token'], dm_2['dm_id'], 0)['messages'][0]['message'] == "Hello World!" assert dm_messages_v1(user_3['token'], dm_3['dm_id'], 0)['messages'][0]['message'] == "Hello World!" assert msg1 != msg2 assert msg1 != msg3 assert msg2 != msg3
def create_dms(): clear_v1() user1 = auth_register_v2('*****@*****.**', '123abc!@#', 'a', 'b') user2 = auth_register_v2('*****@*****.**', '123abc!@#', 'c', 'd') user3 = auth_register_v2('*****@*****.**', '123abc!@#', 'e', 'f') user4 = auth_register_v2('*****@*****.**', '123abc!@#', 'g', 'h') users = [user1, user2, user3, user4] user_list = [] user_list.append(users[1]['auth_user_id']) user_list.append(users[2]['auth_user_id']) dm_1 = dm_create_v1(users[0]['token'], user_list)#create dm 1 user_list = [] user_list.append(users[0]['auth_user_id']) dm_2 = dm_create_v1(users[1]['token'], user_list)#create dm 2 user_list = [] user_list.append(users[0]['auth_user_id']) user_list.append(users[1]['auth_user_id']) user_list.append(users[2]['auth_user_id']) dm_3 = dm_create_v1(users[3]['token'], user_list)#create dm 3 return {'users': users, 'dms': [dm_1, dm_2, dm_3]}
def test_share_message_not_in_receiving_dm(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') dm_1 = dm_create_v1(user_1['token'], []) dm_2 = dm_create_v1(user_2['token'], []) msg1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Hi DM 1') msg2 = message_senddm_v1(user_2['token'], dm_2['dm_id'], 'Hi DM 2') with pytest.raises(AccessError): message_share_v1(user_1['token'], msg2['message_id'], '', -1, dm_1['dm_id']) message_share_v1(user_2['token'], msg1['message_id'], 'SPAM!', -1, dm_1['dm_id'])
def create_dms(): clear_v1() user1 = auth_register_v2('*****@*****.**', '123abc!@#', 'a', 'b') user2 = auth_register_v2('*****@*****.**', '123abc!@#', 'c', 'd') user3 = auth_register_v2('*****@*****.**', '123abc!@#', 'e', 'f') user4 = auth_register_v2('*****@*****.**', '123abc!@#', 'g', 'h') users = [user1, user2, user3, user4] user_list = [] user_list.append(users[1]['auth_user_id']) user_list.append(users[2]['auth_user_id']) dm_1 = dm_create_v1(users[0]['token'], user_list) #create dm 1 user_list = [] user_list.append(users[0]['auth_user_id']) dm_2 = dm_create_v1(users[1]['token'], user_list) #create dm 2 user_list = [] user_list.append(users[0]['auth_user_id']) user_list.append(users[1]['auth_user_id']) user_list.append(users[2]['auth_user_id']) dm_3 = dm_create_v1(users[3]['token'], user_list) #create dm 3 message_ids_1 = [] #correct_msg_1 = [] for i in range(0, 50): msg = str(i) message_id = message_senddm_v1(users[0]['token'], dm_1['dm_id'], msg) message_ids_1.append(message_id) #correct_msg_1.append(msg) message_ids_2 = [] for i in range(200, 400): msg = str(i) message_id = message_senddm_v1(users[0]['token'], dm_2['dm_id'], msg) message_ids_2.append(message_id) # message_ids_3 = [] # for i in range(0, 800): # msg = str(i) # message_id = message_senddm_v1(users[0]['token'], dm_3['dm_id'], msg) # message_ids_3.append(message_id) return { 'users': users, 'dms': [dm_1, dm_2, dm_3], 'msg_ids': [message_ids_1, message_ids_2] }
def test_invalid_token(): """ Tests return of expected output when given a token that doesn't exist, or if the user is not in the channel/dm. """ clear_v1() # Token doesnt exist user_1 = auth_register_v2('*****@*****.**', 'happydays1', 'Eric', 'Zheng') with pytest.raises(AccessError): notifications_get_v1(user_1['token'] + 'bug') # User not in channel user_2 = auth_register_v2('*****@*****.**', 'happydays2', 'Josh', 'Hatton') channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True) user_2_handle = user_profile_v2(user_1['token'], user_2['auth_user_id']) message_send_v2(user_1['token'], channel_1['channel_id'], f"Hi @{user_2_handle['user']['handle_str']}") assert notifications_get_v1(user_2['token']) == {'notifications': []} # User not in dm dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) user_3 = auth_register_v2('*****@*****.**', 'hihihi!!!', 'Bunny', 'Dong') user_3_handle = user_profile_v2(user_1['token'], user_3['auth_user_id']) message_senddm_v1(user_1['token'], dm_1['dm_id'], f"Hello @{user_3_handle['user']['handle_str']}") assert notifications_get_v1(user_3['token']) == {'notifications': []}
def test_removed_dms(): """Tests that sent dm messages are now 'Removed user' after the user is removed """ clear_v1() user_1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng") user_2 = auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton") dm_1 = dm_create_v1(user_1["token"], [user_2["auth_user_id"]]) message_senddm_v1(user_1["token"], dm_1["dm_id"], "Hello user 2!") message_2 = message_senddm_v1(user_2["token"], dm_1["dm_id"], "Nice to meet you user 1") message_senddm_v1(user_2["token"], dm_1["dm_id"], "you are a donkey :)") assert admin_user_remove_v1(user_1["token"], user_2["auth_user_id"]) == {} dm_1_messages = dm_messages_v1(user_1["token"], dm_1["dm_id"], 0) for dm in dm_1_messages["messages"]: if dm["message_id"] == message_2["message_id"]: assert dm["message"] == "Removed user" clear_v1()
def dm_create_v1_http(): data = request.get_json() token = str(data.get('token')) u_ids = data.get('u_ids') return_val = dm_create_v1(token, u_ids) return dumps(return_val)
def create_input(): clear_v1() data_test_users = [ auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton"), auth_register_v2("*****@*****.**", "anotherpassword", "Bunny", "Dong"), auth_register_v2("*****@*****.**", "password3", "Jordan", "Milch"), auth_register_v2("*****@*****.**", "4thpassword", "Dean", "Zworestine"), auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng"), ] data_test_dms = [ dm_create_v1(data_test_users[0]["token"], [data_test_users[1]["auth_user_id"], data_test_users[2]["auth_user_id"]]), dm_create_v1(data_test_users[1]["token"], [data_test_users[3]["auth_user_id"]]), ] return [data_test_users, data_test_dms]
def test_senddm_invalid_access(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) with pytest.raises(AccessError): message_senddm_v1(user_3['token'], dm_1['dm_id'], 'Sliding in') message_senddm_v1(user_3['token'], dm_1['dm_id'], 'Back again')
def test_edit_from_dm(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in') message_edit_v2(user_1['token'], msg_1['message_id'], 'Beep beep lettuce') assert dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages'][0]['message'] == 'Beep beep lettuce'
def test_senddm_invalid_input(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) with pytest.raises(InputError): message_senddm_v1(user_1['token'], dm_1['dm_id'], 'a' * 1001) message_senddm_v1(user_1['token'], dm_1['dm_id'], 'b' * 1001) message_senddm_v1(user_1['token'], dm_1['dm_id'], 'b' * 1001)
def test_senddm_basic(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in') assert type(msg_1) == dict assert type(msg_1['message_id']) == int assert dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages'][0]['message'] == "Sliding in"
def test_different_permissions_remove_dm(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) dmsg1 = message_senddm_v1(user_2['token'], dm_1['dm_id'], 'Hello World! 1') assert message_remove_v1(user_2['token'], dmsg1['message_id']) == {} dmsg2 = message_senddm_v1(user_2['token'], dm_1['dm_id'], 'Hello World! 2') with pytest.raises(AccessError): message_remove_v1(user_1['token'], dmsg2['message_id']) message_remove_v1(user_3['token'], dmsg2['message_id'])
def test_share_multiple_message_dm(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') dm_1 = dm_create_v1(user_1['token'], []) dm_2 = dm_create_v1(user_1['token'], []) msg1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Hi DM 1') msg2 = message_senddm_v1(user_1['token'], dm_2['dm_id'], 'Hi DM 2') msg3 = message_share_v1(user_1['token'], msg1['message_id'], '', -1, dm_2['dm_id']) msg4 = message_share_v1(user_1['token'], msg2['message_id'], 'SPAM!', -1, dm_1['dm_id']) assert dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages'][0]['message'] == "Hi DM 2\nSPAM!" assert dm_messages_v1(user_1['token'], dm_2['dm_id'], 0)['messages'][0]['message'] == "Hi DM 1" assert len(dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages']) == 2 assert len(dm_messages_v1(user_1['token'], dm_2['dm_id'], 0)['messages']) == 2 assert msg1['message_id'] != msg4['shared_message_id'] assert msg1['message_id'] != msg3['shared_message_id'] msg5 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'DM 1 > DM 2') msg6 = message_senddm_v1(user_1['token'], dm_2['dm_id'], 'DM 1 stinkyyyy') msg7 = message_share_v1(user_1['token'], msg5['message_id'], '123', -1, dm_2['dm_id']) msg8 = message_share_v1(user_1['token'], msg6['message_id'], '', -1, dm_1['dm_id']) assert dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages'][0]['message'] == "DM 1 stinkyyyy" assert dm_messages_v1(user_1['token'], dm_2['dm_id'], 0)['messages'][0]['message'] == "DM 1 > DM 2\n123" assert len(dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages']) == 4 assert len(dm_messages_v1(user_1['token'], dm_2['dm_id'], 0)['messages']) == 4 assert msg5['message_id'] != msg8['shared_message_id'] assert msg5['message_id'] != msg7['shared_message_id']
def test_dm_create_errors(register_users): users = register_users user_list = [] user_list.append(1000) #wrong u_id user_list.append(121323) user_1 = users[0] with pytest.raises(InputError): #invalid u_id dm_create_v1(user_1['token'], user_list) #try to create dm 1 user_list = [] user_list.append(33) #wrong u_id user_list.append(3245) user_1 = users[0] with pytest.raises(InputError): #invalid u_id dm_create_v1(user_1['token'], user_list) #try to create dm 1 with pytest.raises(AccessError): dm_create_v1("fseffew", user_list) clear_v1()
def test_mixed_basic(): clear_v1() result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') auth_register_v2('*****@*****.**', 'password', 'comp', 'student') channels_create_v2(result1['token'], "The party channel 1", True) channels_create_v2(result1['token'], "The party channel 2", True) dm_create_v1(result1['token'], [result2['auth_user_id']]) output = user_stats(result1['token']) dreams = users_stats(result1['token']) assert len(output['user_stats']) == 4 assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 2 assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0 assert output['user_stats']['involvement_rate'] == 1 assert len(dreams['dreams_stats']) == 4 assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 2 assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 1 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0 assert dreams['dreams_stats']['utilization_rate'] == 2/3
def test_tag_sendlaterdm(): clear_v1() user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng") user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton") dm1 = dm_create_v1(user1['token'], [user2['auth_user_id']]) msg1str = "@joshhatton sup" current_time = int(time.time()) message_sendlaterdm_v1(user1['token'], dm1['dm_id'], msg1str, current_time + 2) assert len(notifications_get_v1(user2['token'])['notifications']) == 1 time.sleep(3) assert len(notifications_get_v1(user2['token'])['notifications']) == 2
def test_remove_from_dm(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b') dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]) msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in') message_remove_v1(user_1['token'], msg_1['message_id']) assert len(dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages']) == 0 msg_2 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Pls dont block me') message_edit_v2(user_1['token'], msg_2['message_id'], '') assert len(dm_messages_v1(user_1['token'], dm_1['dm_id'], 0)['messages']) == 0
def test_mixed_harder(): clear_v1() result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') channel1 = channels_create_v2(result1['token'], "The party channel 1", True)['channel_id'] message_send_v2(result1['token'], channel1, 'hello how are you') dm_create_v1(result1['token'], [result2['auth_user_id']]) output = user_stats(result1['token']) assert len(output['user_stats']) == 4 assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output['user_stats']['involvement_rate'] == 1 channels_create_v2(result1['token'], "The party channel 2", True) channel3 = channels_create_v2(result2['token'], "The party channel 3", True)['channel_id'] channel_addowner_v1(result2['token'], channel3, result1['auth_user_id']) message_send_v2(result2['token'], channel3, 'hello how are you') output1 = user_stats(result1['token']) output2 = user_stats(result2['token']) assert len(output1['user_stats']) == 4 assert output1['user_stats']['channels_joined'][-1]['num_channels_joined'] == 3 assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output1['user_stats']['involvement_rate'] == 5/6 assert len(output2['user_stats']) == 4 assert output2['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output2['user_stats']['involvement_rate'] == 3/6 dreams = users_stats(result1['token']) assert len(dreams['dreams_stats']) == 4 assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 3 assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 1 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 2 assert dreams['dreams_stats']['utilization_rate'] == 1
def test_removed_from_dm(): """Tests that a user is removed from a dm""" clear_v1() user_1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng") user_2 = auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton") dm_1 = dm_create_v1(user_1["token"], []) dm_invite_v1(user_1["token"], dm_1["dm_id"], user_2["auth_user_id"]) admin_user_remove_v1(user_1["token"], user_2["auth_user_id"]) members = dm_details_v1(user_1["token"], dm_1["dm_id"])["members"] assert user_2["auth_user_id"] not in [m["u_id"] for m in members]
def test_zero_division(): clear_v1() result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') dm1 = dm_create_v1(result1['token'], [result2['auth_user_id']]) message_senddm_v1(result1['token'], dm1['dm_id'], "Pls") dm_remove_v1(result1['token'], dm1['dm_id']) output = user_stats(result1['token']) dreams = users_stats(result1['token']) assert len(output['user_stats']) == 4 assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 0 assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 0 assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output['user_stats']['involvement_rate'] == 0 assert len(dreams['dreams_stats']) == 4 assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 0 assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 0 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0 assert dreams['dreams_stats']['utilization_rate'] == 0
def test_dm_create(register_users): users = register_users user_list = [] user_list.append(users[1]['auth_user_id']) user_list.append(users[2]['auth_user_id']) user_1 = users[0] dm_1 = dm_create_v1(user_1['token'], user_list) #create dm 1 profile_0 = user_profile_v2(user_1['token'], user_1['auth_user_id'])['user'] profile_1 = user_profile_v2(user_1['token'], users[1]['auth_user_id'])['user'] profile_2 = user_profile_v2(user_1['token'], users[2]['auth_user_id'])['user'] profile_3 = user_profile_v2(user_1['token'], users[3]['auth_user_id'])['user'] rt_val = dm_details_v1(user_1['token'], dm_1['dm_id']) assert rt_val['name'] == "ab, cd, ef" assert sorted(rt_val['members'], key=lambda x: x['u_id']) == sorted([ { 'u_id': users[1]['auth_user_id'], 'name_first': 'c', 'name_last': 'd', 'email': '*****@*****.**', 'handle_str': 'cd', 'profile_img_url': profile_1['profile_img_url'], }, { 'u_id': users[2]['auth_user_id'], 'name_first': 'e', 'name_last': 'f', 'email': '*****@*****.**', 'handle_str': 'ef', 'profile_img_url': profile_2['profile_img_url'], }, { 'u_id': users[0]['auth_user_id'], 'name_first': 'a', 'name_last': 'b', 'email': '*****@*****.**', 'handle_str': 'ab', 'profile_img_url': profile_0['profile_img_url'], }, ], key=lambda x: x['u_id']) user_2 = users[1] user_list = [] user_list.append(users[0]['auth_user_id']) dm_2 = dm_create_v1(user_2['token'], user_list) #create dm 2 rt_val = dm_details_v1(user_2['token'], dm_2['dm_id']) assert rt_val['name'] == "ab, cd" assert sorted(rt_val['members'], key=lambda x: x['u_id']) == sorted([ { 'u_id': users[1]['auth_user_id'], 'name_first': 'c', 'name_last': 'd', 'email': '*****@*****.**', 'handle_str': 'cd', 'profile_img_url': profile_1['profile_img_url'], }, { 'u_id': users[0]['auth_user_id'], 'name_first': 'a', 'name_last': 'b', 'email': '*****@*****.**', 'handle_str': 'ab', 'profile_img_url': profile_0['profile_img_url'], }, ], key=lambda x: x['u_id']) user_4 = users[3] user_list = [] user_list.append(users[0]['auth_user_id']) user_list.append(users[1]['auth_user_id']) user_list.append(users[2]['auth_user_id']) dm_3 = dm_create_v1(user_4['token'], user_list) #create dm 3 rt_val = dm_details_v1(user_4['token'], dm_3['dm_id']) assert rt_val['name'] == "ab, cd, ef, gh" assert sorted(rt_val['members'], key=lambda x: x['u_id']) == sorted([ { 'u_id': users[0]['auth_user_id'], 'name_first': 'a', 'name_last': 'b', 'email': '*****@*****.**', 'handle_str': 'ab', 'profile_img_url': profile_0['profile_img_url'], }, { 'u_id': users[1]['auth_user_id'], 'name_first': 'c', 'name_last': 'd', 'email': '*****@*****.**', 'handle_str': 'cd', 'profile_img_url': profile_1['profile_img_url'], }, { 'u_id': users[2]['auth_user_id'], 'name_first': 'e', 'name_last': 'f', 'email': '*****@*****.**', 'handle_str': 'ef', 'profile_img_url': profile_2['profile_img_url'], }, { 'u_id': users[3]['auth_user_id'], 'name_first': 'g', 'name_last': 'h', 'email': '*****@*****.**', 'handle_str': 'gh', 'profile_img_url': profile_3['profile_img_url'], }, ], key=lambda x: x['u_id']) clear_v1()
def create_input(): clear_v1() data_test_users = [ auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng"), auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton"), auth_register_v2("*****@*****.**", "anotherpassword", "Bunny", "Dong"), auth_register_v2("*****@*****.**", "password3", "Jordan", "Milch"), auth_register_v2("*****@*****.**", "4thpassword", "Dean", "Zworestine"), ] data_test_users_handles = [ user_profile_v2(data_test_users[0]['token'], data_test_users[0]['auth_user_id']), user_profile_v2(data_test_users[0]['token'], data_test_users[1]['auth_user_id']), user_profile_v2(data_test_users[0]['token'], data_test_users[2]['auth_user_id']), user_profile_v2(data_test_users[0]['token'], data_test_users[3]['auth_user_id']), user_profile_v2(data_test_users[0]['token'], data_test_users[4]['auth_user_id']), ] # user 1 is owner of channel 1 # user 2 is owner of channel 2 # user 3 is owner of channel 3 (private channel) data_test_channels = [ channels_create_v2(data_test_users[0]['token'], 'Channel 1', True), channels_create_v2(data_test_users[1]['token'], 'Channel 2', True), channels_create_v2(data_test_users[2]['token'], 'Private', False) ] # user 1 has dm with user 2 in dm 1 # user 3 has dm with user 4 in dm2 # user 5 has dm with user 2 in dm3 data_test_dms = [ dm_create_v1(data_test_users[0]['token'], [data_test_users[1]['auth_user_id']]), dm_create_v1(data_test_users[2]['token'], [data_test_users[3]['auth_user_id']]), dm_create_v1(data_test_users[4]['token'], [data_test_users[1]['auth_user_id']]) ] data_test_messages = [ f"Hello @{data_test_users_handles[0]}, how are you on such a fine lovely day? I hope you are well!", f"Hello @{data_test_users_handles[1]}, can you send me homework answers from yesterday please? Thanks!", f"Hello @{data_test_users_handles[2]}, I heard that your knees are the finest knees in all of Australia, is this true?", f"@{data_test_users_handles[3]} is cool.", f"@{data_test_users_handles[4]} is a donkey.", f"@{data_test_users_handles[2]} is an even bigger donkey than @{data_test_users_handles[4]}" ] return [ data_test_users, data_test_users_handles, data_test_channels, data_test_dms, data_test_messages ]
def test_further_mixed_harder(): clear_v1() result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result3 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result4 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') channel1 = channels_create_v2(result1['token'], "The party channel 1", True) channel2 = channels_create_v2(result2['token'], "The party channel 2", True) dm_create_v1(result1['token'], [result2['auth_user_id'], result3['auth_user_id']]) dm_create_v1(result2['token'], [result4['auth_user_id'], result3['auth_user_id']]) output1 = user_stats(result1['token']) output2 = user_stats(result2['token']) output3 = user_stats(result3['token']) output4 = user_stats(result4['token']) assert len(output1['user_stats']) == 4 assert output1['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0 assert output1['user_stats']['involvement_rate'] == 2/4 assert len(output2['user_stats']) == 4 assert output2['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2 assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0 assert output2['user_stats']['involvement_rate'] == 3/4 assert len(output3['user_stats']) == 4 assert output3['user_stats']['channels_joined'][-1]['num_channels_joined'] == 0 assert output3['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2 assert output3['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0 assert output3['user_stats']['involvement_rate'] == 2/4 assert len(output4['user_stats']) == 4 assert output4['user_stats']['channels_joined'][-1]['num_channels_joined'] == 0 assert output4['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output4['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0 assert output4['user_stats']['involvement_rate'] == 1/4 dreams = users_stats(result1['token']) assert len(dreams['dreams_stats']) == 4 assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 2 assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 2 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0 assert dreams['dreams_stats']['utilization_rate'] == 1 channel_invite_v2(result1['token'], channel1['channel_id'], result3['auth_user_id']) channel_invite_v2(result2['token'], channel2['channel_id'], result3['auth_user_id']) message1 = message_send_v2(result1['token'], channel1['channel_id'], 'Hello, how are you?') message_send_v2(result1['token'], channel1['channel_id'], 'Hello, how are you?') message_send_v2(result1['token'], channel1['channel_id'], 'Hello, how are you?') message_send_v2(result2['token'], channel2['channel_id'], 'Hello, how are you?') message2 = message_send_v2(result3['token'], channel2['channel_id'], 'Hello, how are you?') message_remove_v1(result1['token'], message1['message_id']) message_remove_v1(result3['token'], message2['message_id']) auth_register_v2('*****@*****.**', 'password', 'comp', 'student') output1 = user_stats(result1['token']) output2 = user_stats(result2['token']) output3 = user_stats(result3['token']) output4 = user_stats(result4['token']) dreams = users_stats(result1['token']) assert len(output1['user_stats']) == 4 assert output1['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 3 assert output1['user_stats']['involvement_rate'] == 5/7 assert len(output2['user_stats']) == 4 assert output2['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2 assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output2['user_stats']['involvement_rate'] == 4/7 assert len(output3['user_stats']) == 4 assert output3['user_stats']['channels_joined'][-1]['num_channels_joined'] == 2 assert output3['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2 assert output3['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output3['user_stats']['involvement_rate'] == 5/7 assert len(output4['user_stats']) == 4 assert output4['user_stats']['channels_joined'][-1]['num_channels_joined'] == 0 assert output4['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1 assert output4['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0 assert output4['user_stats']['involvement_rate'] == 1/7 assert len(dreams['dreams_stats']) == 4 assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 2 assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 2 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 3 assert dreams['dreams_stats']['utilization_rate'] == 4/5 clear_v1()
def create_input(): clear_v1() data_test_users = [ auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng"), auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton"), auth_register_v2("*****@*****.**", "anotherpassword", "Bunny", "Dong"), auth_register_v2("*****@*****.**", "password3", "Jordan", "Milch"), auth_register_v2("*****@*****.**", "4thpassword", "Dean", "Zworestine"), ] data_test_channels = [ channels_create_v2(data_test_users[0]["token"], "Channel 1", True), channels_create_v2(data_test_users[1]["token"], "Private", False), ] # User1, User3, User 4 in channel 1 # User2, User 5 in channel 2 channel_join_v2(data_test_users[2]["token"], data_test_channels[0]["channel_id"]) channel_join_v2(data_test_users[3]["token"], data_test_channels[0]["channel_id"]) channel_invite_v2(data_test_users[1]["token"], data_test_channels[1]["channel_id"], data_test_users[4]["auth_user_id"]) # User 1, user3, user4 sends a message to channel 1 # User2, user5 sends a message to channel 2 data_test_channel_messages = [ message_send_v2( data_test_users[0]["token"], data_test_channels[0]["channel_id"], "Look, I was gonna go easy on you \ Not to hurt your feelings \ But I'm only going to get this one chance \ Something's wrong, I can feel it", ), message_send_v2( data_test_users[1]["token"], data_test_channels[1]["channel_id"], "Can we pretend that airplanes in the night \ sky are like shootin' stars \ I could really use a wish right now, wish right \ now, wish right now Can we pretend that \ airplanes in the night sky are like shootin'", ), message_send_v2( data_test_users[2]["token"], data_test_channels[0]["channel_id"], "All I want is nothing more \ To hear you knocking at my door \ 'Cause if I could see your face once more \ I could die a happy man I'm sure", ), message_send_v2( data_test_users[3]["token"], data_test_channels[0]["channel_id"], "I've been staring at the edge of the water \ 'Long as I can remember \ Never really knowing why", ), message_send_v2( data_test_users[4]["token"], data_test_channels[1]["channel_id"], "I am so so so so so sick of writing these tests \ someone please send help i am so tired lol.", ), ] # user 1 has dm with user 2 # user 3 has dm with user 4 # user 5 has dm with user 2 data_test_dms = [ dm_create_v1(data_test_users[0]["token"], [data_test_users[1]["auth_user_id"]]), dm_create_v1(data_test_users[2]["token"], [data_test_users[3]["auth_user_id"]]), dm_create_v1(data_test_users[4]["token"], [data_test_users[1]["auth_user_id"]]), ] # user 1, user_2 sends dm to dm_1 # user 3, user 4 sends dm to dm_2 # user 5 sends dm to dm_3 data_test_dm_messages = [ message_senddm_v1(data_test_users[0]["token"], data_test_dms[0]["dm_id"], "Hello user 2!"), message_senddm_v1(data_test_users[1]["token"], data_test_dms[0]["dm_id"], "Hi user 1!"), message_senddm_v1(data_test_users[2]["token"], data_test_dms[1]["dm_id"], "How are you user 4?"), message_senddm_v1(data_test_users[3]["token"], data_test_dms[1]["dm_id"], "I am fine user 3!"), message_senddm_v1(data_test_users[4]["token"], data_test_dms[2]["dm_id"], "Shut up user 2."), ] return [ data_test_users, data_test_channels, data_test_channel_messages, data_test_dms, data_test_dm_messages ]