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)
Exemple #2
0
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)
Exemple #6
0
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)
Exemple #9
0
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'])
Exemple #10
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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
Exemple #17
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'])
Exemple #18
0
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
Exemple #19
0
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}
Exemple #20
0
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
Exemple #22
0
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
Exemple #23
0
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()
Exemple #24
0
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
        }
    }
Exemple #25
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,
    }
Exemple #26
0
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)