def test_invalid_token(reg_user, crt_channel, send_message): clear_v2() user_token = reg_user(0)['token'] channel_id = crt_channel(user_token)['channel_id'] message_id = send_message(user_token, channel_id)['message_id'] with pytest.raises(AccessError): message_remove_v1("Invalid token", message_id)
def test_different_permissions_edit_remove(): 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') channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True) channel_invite_v2(user_1['token'], channel_1['channel_id'], user_2['auth_user_id']) channel_invite_v2(user_1['token'], channel_1['channel_id'], user_3['auth_user_id']) msg1 = message_send_v2(user_2['token'], channel_1['channel_id'], 'First Message') msg2 = message_send_v2(user_2['token'], channel_1['channel_id'], 'Second Message') assert len( channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages']) == 2 assert message_edit_v2(user_1['token'], msg1['message_id'], '') == {} assert len( channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages']) == 1 assert channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages'][0]['message'] == "Second Message" assert message_edit_v2(user_2['token'], msg2['message_id'], '') == {} msg3 = message_send_v2(user_2['token'], channel_1['channel_id'], 'Third Message') assert channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages'][0]['message'] == "Third Message" with pytest.raises(AccessError): message_edit_v2(user_3['token'], msg3['message_id'], '') with pytest.raises(AccessError): message_remove_v1(user_3['token'], msg3['message_id']) assert channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages'][0]['message'] == "Third Message"
def test_nonexistent_message_id(reg_user, crt_channel, send_message): clear_v2() user_token = reg_user(0)['token'] channel_id = crt_channel(user_token)['channel_id'] message_id = send_message(user_token, channel_id)['message_id'] with pytest.raises(InputError): message_remove_v1(user_token, message_id + 1)
def test_remove_single_channel_message(reg_user, crt_channel, send_message): clear_v2() user_token = reg_user(0)['token'] channel_id = crt_channel(user_token)['channel_id'] message_id = send_message(user_token, channel_id)['message_id'] message_remove_v1(user_token, message_id) messages = channel_messages_v2(user_token, channel_id, 0)['messages'] assert not len(messages)
def test_remove_single_dm_message(reg_user, crt_dm, send_dm_message): clear_v2() user_1_token = reg_user(0)['token'] user_2_id = reg_user(1)['auth_user_id'] dm_id = crt_dm(user_1_token, [user_2_id])['dm_id'] message_id = send_dm_message(user_1_token, dm_id)['message_id'] message_remove_v1(user_1_token, message_id) messages = dm_messages_v1(user_1_token, dm_id, 0)['messages'] assert not len(messages)
def test_deleted_delete(): clear_v1() user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a') channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True) msg1 = message_send_v2(user_1['token'], channel_1['channel_id'], 'Hello World!') assert message_remove_v1(user_1['token'], msg1['message_id']) == {} with pytest.raises(AccessError): message_remove_v1(user_1['token'], msg1['message_id']) with pytest.raises(AccessError): message_edit_v2(user_1['token'], msg1['message_id'], '')
def test_dreams_owner_remove_message_of_other_user(reg_user, crt_channel, send_message): clear_v2() user_1_token = reg_user(0)['token'] # Dreams owner user_2_token = reg_user(1)['token'] channel_id = crt_channel(user_1_token)['channel_id'] channel_join_v2(user_2_token, channel_id) message_id = send_message(user_2_token, channel_id)['message_id'] message_remove_v1(user_1_token, message_id) messages = channel_messages_v2(user_1_token, channel_id, 0)['messages'] assert not len(messages)
def test_non_owner_remove_message_of_other_user(reg_user, crt_channel, send_message): clear_v2() user_1_token = reg_user(0)['token'] user_2_token = reg_user(1)['token'] channel_id = crt_channel(user_1_token)['channel_id'] channel_join_v2(user_2_token, channel_id) message_id = message_send_v2(user_1_token, channel_id, "Test")['message_id'] with pytest.raises(AccessError): message_remove_v1(user_2_token, message_id)
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_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_remove_multiple_channel_messages(reg_user, crt_channel, send_message): clear_v2() user_token = reg_user(0)['token'] channel_id = crt_channel(user_token)['channel_id'] message_ids = [] for i in range(0, 10): message_id = send_message(user_token, channel_id)['message_id'] message_ids.append(message_id) for i in range(0, len(message_ids) - 1): message_remove_v1(user_token, message_ids[i]) messages = channel_messages_v2(user_token, channel_id, 0)['messages'] for msg in messages: assert message_ids[i] != msg['message_id'] message_remove_v1(user_token, message_ids[-1]) messages = channel_messages_v2(user_token, channel_id, 0)['messages'] assert not len(messages)
def message_remove(): data = request.get_json() token = data['token'] message_id = data['message_id'] output = message_remove_v1(token, message_id) return dumps(output)
def test_remove_multiple_dm_messages(reg_user, crt_dm, send_dm_message): clear_v2() user_1_token = reg_user(0)['token'] user_2_id = reg_user(1)['auth_user_id'] dm_id = crt_dm(user_1_token, [user_2_id])['dm_id'] message_ids = [] for i in range(0, 10): message_id = send_dm_message(user_1_token, dm_id)['message_id'] message_ids.append(message_id) for i in range(0, len(message_ids) - 1): message_remove_v1(user_1_token, message_ids[i]) messages = dm_messages_v1(user_1_token, dm_id, 0)['messages'] for msg in messages: assert message_ids[i] != msg['message_id'] message_remove_v1(user_1_token, message_ids[-1]) messages = dm_messages_v1(user_1_token, dm_id, 0)['messages'] assert not len(messages)
def message_remove(): info = request.get_json() token = info["token"] message_id = info["message_id"] message_remove = message_remove_v1(token, message_id) return dumps(message_remove)
def test_delected_message(reg_user, create_channel): clear_v2() message = "Hello World!" # new user new_user = reg_user(0) user_token = new_user['token'] # new channel channel_id = create_channel(user_token)['channel_id'] # new message message_id = message_send_v2(user_token, channel_id, message)['message_id'] # delected message_remove_v1(user_token, message_id) with pytest.raises(InputError): message_edit_v2(user_token, message_id, message)
def test_mixed_decrement(): 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'] message1 = message_send_v2(result1['token'], channel1, 'hello how are you')['message_id'] message_remove_v1(result1['token'], message1) channel_join_v2(result2['token'], channel1) channel_leave_v1(result2['token'], channel1) output = user_stats(result1['token']) assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1 assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 output1 = user_stats(result2['token']) assert output1['user_stats']['channels_joined'][-1]['num_channels_joined'] == 0 dreams = users_stats(result1['token']) assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 1 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0
def test_different_permissions_remove_channel(): 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') channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True) channel_invite_v2(user_1['token'], channel_1['channel_id'], user_2['auth_user_id']) channel_invite_v2(user_1['token'], channel_1['channel_id'], user_3['auth_user_id']) message_send_v2(user_2['token'], channel_1['channel_id'], 'Hello World! 0') msg1 = message_send_v2(user_2['token'], channel_1['channel_id'], 'Hello World! 1') assert message_remove_v1(user_1['token'], msg1['message_id']) == {} assert channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages'][0]['message'] == "Hello World! 0" msg1 = message_send_v2(user_2['token'], channel_1['channel_id'], 'Hello World! 2') assert message_remove_v1(user_2['token'], msg1['message_id']) == {} assert channel_messages_v2(user_1['token'], channel_1['channel_id'], 0)['messages'][0]['message'] == "Hello World! 0" with pytest.raises(AccessError): message_remove_v1(user_3['token'], msg1['message_id'])
def test_message_remove_stat(): clear_v1() result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') result3 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student') dm1 = dm_create_v1(result1['token'], [result2['auth_user_id'], result3['auth_user_id']]) message1 = message_senddm_v1(result1['token'], dm1['dm_id'], 'Hello, how are you?') message_remove_v1(result1['token'], message1['message_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'] == 1 assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1 assert output['user_stats']['involvement_rate'] == 2 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'] == 1 assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0 assert dreams['dreams_stats']['utilization_rate'] == 1
def test_message_remove_then_add(user_setup, channel_setup, dm_setup, message_setup): message_remove_v1(make_token(3), 0) message_remove_v1(make_token(1), 1) assert message_send_v2(make_token(2), 0, "hello") == {'message_id': 20} assert message_send_v2(make_token(2), 0, "hello2") == {'message_id': 21} message_remove_v1(make_token(1), 10) assert message_senddm_v1(make_token(1), 1, "hello2") == {'message_id': 22}
def message_remove(): parameters = request.get_json() token = parameters['token'] message_id = parameters['message_id'] message_remove_v1(token, message_id) return dumps({})
def test_messages(test_data): a_data, b_data, c_data = test_data init_time_stamp = datetime.now().replace(microsecond=0).timestamp() sleep(1) a_dm_id = dm_create_v1( a_data["token"], [b_data["auth_user_id"], c_data["auth_user_id"]])["dm_id"] a_ch_id = channels_create_v2(a_data["token"], "A channel", True)["channel_id"] channel_join_v2(b_data["token"], a_ch_id) channel_join_v2(c_data["token"], a_ch_id) a_msg_time_stamp = datetime.now().replace(microsecond=0).timestamp() message_send_v2(a_data["token"], a_ch_id, "A message") sleep(1) dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"] assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0 assert abs(dreams_stats["messages_exist"][0]["time_stamp"] - init_time_stamp) <= 1 assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1 assert abs(dreams_stats["messages_exist"][1]["time_stamp"] - a_msg_time_stamp) <= 1 b_msg_time_stamp = datetime.now().replace(microsecond=0).timestamp() delete_msg_id = message_send_v2(b_data["token"], a_ch_id, "A message")["message_id"] sleep(1) dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"] assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0 assert abs(dreams_stats["messages_exist"][0]["time_stamp"] - init_time_stamp) <= 1 assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1 assert abs(dreams_stats["messages_exist"][1]["time_stamp"] - a_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2 assert abs(dreams_stats["messages_exist"][2]["time_stamp"] - b_msg_time_stamp) <= 1 b_msgdm_time_stamp = datetime.now().replace(microsecond=0).timestamp() share_msg_id = message_senddm_v1(b_data["token"], a_dm_id, "A message")["message_id"] sleep(1) dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"] assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0 assert abs(dreams_stats["messages_exist"][0]["time_stamp"] - init_time_stamp) <= 1 assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1 assert abs(dreams_stats["messages_exist"][1]["time_stamp"] - a_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2 assert abs(dreams_stats["messages_exist"][2]["time_stamp"] - b_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][3]["num_messages_exist"] == 3 assert abs(dreams_stats["messages_exist"][3]["time_stamp"] - b_msgdm_time_stamp) <= 1 c_share_time_stamp = datetime.now().replace(microsecond=0).timestamp() message_share_v1(c_data["token"], share_msg_id, "Cool message", a_ch_id, -1) sleep(1) dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"] assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0 assert abs(dreams_stats["messages_exist"][0]["time_stamp"] - init_time_stamp) <= 1 assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1 assert abs(dreams_stats["messages_exist"][1]["time_stamp"] - a_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2 assert abs(dreams_stats["messages_exist"][2]["time_stamp"] - b_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][3]["num_messages_exist"] == 3 assert abs(dreams_stats["messages_exist"][3]["time_stamp"] - b_msgdm_time_stamp) <= 1 assert dreams_stats["messages_exist"][4]["num_messages_exist"] == 4 assert abs(dreams_stats["messages_exist"][4]["time_stamp"] - c_share_time_stamp) <= 1 b_delete_time_stamp = datetime.now().replace(microsecond=0).timestamp() message_remove_v1(b_data["token"], delete_msg_id) sleep(1) dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"] assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0 assert abs(dreams_stats["messages_exist"][0]["time_stamp"] - init_time_stamp) <= 1 assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1 assert abs(dreams_stats["messages_exist"][1]["time_stamp"] - a_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2 assert abs(dreams_stats["messages_exist"][2]["time_stamp"] - b_msg_time_stamp) <= 1 assert dreams_stats["messages_exist"][3]["num_messages_exist"] == 3 assert abs(dreams_stats["messages_exist"][3]["time_stamp"] - b_msgdm_time_stamp) <= 1 assert dreams_stats["messages_exist"][4]["num_messages_exist"] == 4 assert abs(dreams_stats["messages_exist"][4]["time_stamp"] - c_share_time_stamp) <= 1 assert dreams_stats["messages_exist"][5]["num_messages_exist"] == 3 assert abs(dreams_stats["messages_exist"][5]["time_stamp"] - b_delete_time_stamp) <= 1
def test_message(test_data): a_data, b_data, c_data = test_data a_ch_create_timestamp = datetime.now().replace(microsecond=0).timestamp() a_ch_id = channels_create_v2(a_data["token"], "A channel", True)["channel_id"] sleep(1) b_dm_create_timestamp = datetime.now().replace(microsecond=0).timestamp() b_dm_id = dm_create_v1(b_data["token"], [a_data["auth_user_id"], c_data["auth_user_id"]])["dm_id"] sleep(1) # 1 channel, 1 dm = 2 total user_stats = user_stats_v1(a_data["token"])["user_stats"] assert user_stats["channels_joined"][1]["num_channels_joined"] == 1 assert abs(user_stats["channels_joined"][1]["time_stamp"] - a_ch_create_timestamp) <= 1 assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["involvement_rate"] == 1 user_stats = user_stats_v1(b_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.5 user_stats = user_stats_v1(c_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.5 # a sends 2 messages in ch, b sends 1 in dm # 1 channel, 1 dm, 2msg, 1msgdm = 5 total a1_msg_send_timestamp = datetime.now().replace(microsecond=0).timestamp() a_msg_id = message_send_v2(a_data["token"], a_ch_id, "Im a message")["message_id"] sleep(1) a2_msg_send_timestamp = datetime.now().replace(microsecond=0).timestamp() a2_msg_id = message_send_v2(a_data["token"], a_ch_id, "Im a message to be shared")["message_id"] sleep(1) b1_msgdm_send_timestamp = datetime.now().replace(microsecond=0).timestamp() message_senddm_v1(b_data["token"], b_dm_id, "Im a message again") sleep(1) user_stats = user_stats_v1(a_data["token"])["user_stats"] assert user_stats["channels_joined"][1]["num_channels_joined"] == 1 assert abs(user_stats["channels_joined"][1]["time_stamp"] - a_ch_create_timestamp) <= 1 assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["messages_sent"][1]["num_messages_sent"] == 1 assert abs(user_stats["messages_sent"][1]["time_stamp"] - a1_msg_send_timestamp) <= 1 assert user_stats["messages_sent"][2]["num_messages_sent"] == 2 assert abs(user_stats["messages_sent"][2]["time_stamp"] - a2_msg_send_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.80 user_stats = user_stats_v1(b_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["messages_sent"][1]["num_messages_sent"] == 1 assert abs(user_stats["messages_sent"][1]["time_stamp"] - b1_msgdm_send_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.40 user_stats = user_stats_v1(c_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.2 # a shares a message # 1 channel, 1 dm, 3msg, 1msgdm = 6 total a_msg_share_timestamp = datetime.now().replace(microsecond=0).timestamp() message_share_v1(a_data["token"], a2_msg_id, "Look at this cool message", -1, b_dm_id) sleep(1) user_stats = user_stats_v1(a_data["token"])["user_stats"] assert user_stats["channels_joined"][1]["num_channels_joined"] == 1 assert abs(user_stats["channels_joined"][1]["time_stamp"] - a_ch_create_timestamp) <= 1 assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["messages_sent"][1]["num_messages_sent"] == 1 assert abs(user_stats["messages_sent"][1]["time_stamp"] - a1_msg_send_timestamp) <= 1 assert user_stats["messages_sent"][2]["num_messages_sent"] == 2 assert abs(user_stats["messages_sent"][2]["time_stamp"] - a2_msg_send_timestamp) <= 1 assert user_stats["messages_sent"][3]["num_messages_sent"] == 3 assert abs(user_stats["messages_sent"][3]["time_stamp"] - a_msg_share_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.83 user_stats = user_stats_v1(b_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["messages_sent"][1]["num_messages_sent"] == 1 assert abs(user_stats["messages_sent"][1]["time_stamp"] - b1_msgdm_send_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.33 user_stats = user_stats_v1(c_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.17 # a removes a1 message # 1 channel, 1 dm, 2msg, 1msgdm = 5 total message_remove_v1(a_data["token"], a_msg_id) sleep(1) # message send for 'a' never goes down but involvement will change user_stats = user_stats_v1(a_data["token"])["user_stats"] assert user_stats["channels_joined"][1]["num_channels_joined"] == 1 assert abs(user_stats["channels_joined"][1]["time_stamp"] - a_ch_create_timestamp) <= 1 assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["messages_sent"][1]["num_messages_sent"] == 1 assert len(user_stats["messages_sent"]) == 4 assert abs(user_stats["messages_sent"][1]["time_stamp"] - a1_msg_send_timestamp) <= 1 assert user_stats["messages_sent"][2]["num_messages_sent"] == 2 assert abs(user_stats["messages_sent"][2]["time_stamp"] - a2_msg_send_timestamp) <= 1 assert user_stats["messages_sent"][3]["num_messages_sent"] == 3 assert abs(user_stats["messages_sent"][3]["time_stamp"] - a_msg_share_timestamp) <= 1 assert user_stats["involvement_rate"] == 1 user_stats = user_stats_v1(b_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["messages_sent"][1]["num_messages_sent"] == 1 assert abs(user_stats["messages_sent"][1]["time_stamp"] - b1_msgdm_send_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.40 user_stats = user_stats_v1(c_data["token"])["user_stats"] assert user_stats["dms_joined"][1]["num_dms_joined"] == 1 assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1 assert user_stats["involvement_rate"] == 0.20
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 test_user_stats_message(register_users, channel_setup, dm_setup): message_send_v2(make_token(0), 0, "Hello") assert user_stats_v1(make_token(0)) == { 'user_stats': { "channels_joined": [{ "num_channels_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 3, "time_stamp": str(create_timestamp()) }], "dms_joined": [{ "num_dms_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 3, "time_stamp": str(create_timestamp()) }], "messages_sent": [{ "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 1, "time_stamp": str(create_timestamp()) }], "involvement_rate": 1.0 } } message_remove_v1(make_token(0), 0) assert user_stats_v1(make_token(0)) == { 'user_stats': { "channels_joined": [{ "num_channels_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 3, "time_stamp": str(create_timestamp()) }], "dms_joined": [{ "num_dms_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 3, "time_stamp": str(create_timestamp()) }], "messages_sent": [{ "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 1, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }], "involvement_rate": 1.0 } } message_send_v2(make_token(0), 0, "Hello") message_share_v1(make_token(0), 0, "Hello again", 0, -1) assert user_stats_v1(make_token(0)) == { 'user_stats': { "channels_joined": [{ "num_channels_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 3, "time_stamp": str(create_timestamp()) }], "dms_joined": [{ "num_dms_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 3, "time_stamp": str(create_timestamp()) }], "messages_sent": [{ "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 1, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 1, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 2, "time_stamp": str(create_timestamp()) }], "involvement_rate": 1.0 } } message_senddm_v1(make_token(0), 0, "Hello") assert user_stats_v1(make_token(0)) == { 'user_stats': { "channels_joined": [{ "num_channels_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_channels_joined": 3, "time_stamp": str(create_timestamp()) }], "dms_joined": [{ "num_dms_joined": 0, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 1, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 2, "time_stamp": str(create_timestamp()) }, { "num_dms_joined": 3, "time_stamp": str(create_timestamp()) }], "messages_sent": [{ "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 1, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 0, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 1, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 2, "time_stamp": str(create_timestamp()) }, { "num_messages_sent": 3, "time_stamp": str(create_timestamp()) }], "involvement_rate": 1.0 } }
def test_message_remove_v1_success(user_setup, channel_setup, dm_setup, message_setup): message_remove_v1(make_token(2), 9) message_remove_v1(make_token(2), 8) message_remove_v1(make_token(2), 7) message_remove_v1(make_token(2), 6) message_remove_v1(make_token(2), 5) message_remove_v1(make_token(2), 4) message_remove_v1(make_token(2), 3) message_remove_v1(make_token(3), 2) message_remove_v1(make_token(1), 1) message_remove_v1(make_token(3), 0) assert channel_messages_v2(make_token(2), 0, 0) == { "messages": [], "start": 0, "end": -1, }
def test_message_remove_v1_errors(user_setup, channel_setup, dm_setup, message_setup): ''' removing message doesnt change other message ids ''' # Test 1: # invalid token with pytest.raises(AccessError): message_remove_v1(make_token(414345), 0) # "Invalid token" # Test 2: # authorised user did not send this message and is not owner of channel/Dreams with pytest.raises(AccessError): message_remove_v1(make_token(1), 0) # "Authorised User is not the owner of this channel/Dreams and did not send this message" with pytest.raises(AccessError): message_remove_v1(make_token(1), 19) # "Authorised User is not an owner of Dreams and did not send this message" # Test 3: # removing a deleted/non-existent message message_remove_v1(make_token(2), 9) with pytest.raises(InputError): message_remove_v1(make_token(2), 9) with pytest.raises(InputError): message_remove_v1(make_token(2), 1000)