Exemplo n.º 1
0
def test_share_pin(test_data):
    a_data, b_data, _ = test_data

    a_ch_id = channels_create_v2(a_data["token"], "A channel",
                                 True)["channel_id"]
    channel_join_v2(b_data["token"], a_ch_id)

    b_dm_id = dm_create_v1(b_data["token"], [a_data["auth_user_id"]])["dm_id"]

    a_msg_id = message_send_v2(a_data["token"], a_ch_id,
                               "Message to be shared to dm")["message_id"]
    b_msgdm_id = message_senddm_v1(
        b_data["token"], b_dm_id,
        "Message to be shared to channel")["message_id"]

    a_share_id = message_share_v1(a_data["token"], a_msg_id, "Shared a msg",
                                  -1, b_dm_id)["shared_message_id"]
    b_share_id = message_share_v1(b_data["token"], b_msgdm_id, "Shared a msg",
                                  a_ch_id, -1)["shared_message_id"]

    message_pin_v1(a_data["token"], b_share_id)
    messages = channel_messages_v2(a_data["token"], a_ch_id, 0)["messages"]
    assert messages[0]["message_id"] == b_share_id
    assert messages[0]["is_pinned"] == True

    message_pin_v1(b_data["token"], a_share_id)
    messages = dm_messages_v1(b_data["token"], b_dm_id, 0)["messages"]
    assert messages[0]["message_id"] == a_share_id
    assert messages[0]["is_pinned"] == True
def test_message_share_neither_ch_id_dm_id_given():
    # InputError raised when -1 are passed for both channel id and dm id
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    channel = channels_create_v2(user['token'], 'TITLE', True)
    msg = message_send_v2(user['token'], channel['channel_id'], 'test')
    with pytest.raises(InputError):
        message_share_v1(user['token'], msg['message_id'], '', -1, -1)
def test_message_share_invalid_token():
    # AccessError raised when invalid token is passed
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    channel = channels_create_v2(user['token'], 'TITLE', True)
    msg = message_send_v2(user['token'], channel['channel_id'], 'test')
    with pytest.raises(AccessError):
        message_share_v1('invalid_token', msg['message_id'], '',
                         channel['channel_id'], -1)
def test_message_share_both_ch_id_dm_id_given():
    # InputError raised when both channel id and dm id are given
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    user2 = auth_register_v2('*****@*****.**', 'passwod298372', 'Bing', 'Lee')
    channel = channels_create_v2(user['token'], 'TITLE', True)
    dm = dm_create_v1(user['token'], [user2['auth_user_id']])
    msg = message_send_v2(user['token'], channel['channel_id'], 'test')
    with pytest.raises(InputError):
        message_share_v1(user['token'], msg['message_id'], '',
                         channel['channel_id'], dm['dm_id'])
def test_message_share_optional_msg_length_ch():
    # InputError should be raised if edited message is more than 100 characters
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Melon',
                            'Fruit')
    channel = channels_create_v2(user['token'], 'Insert Title Here', True)
    msg_sent = message_send_v2(user['token'], channel['channel_id'],
                               'testing123')
    with pytest.raises(InputError):
        message_share_v1(user['token'], msg_sent['message_id'], 'l' * 1001,
                         channel['channel_id'], -1)
Exemplo n.º 6
0
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 test_message_share_auth_user_not_member_ch():
    # Test if AccessError is raised when user tries to share a message in a group
    # that they are not a member of
    clear_v1()
    user_owner = auth_register_v2('*****@*****.**', 'password2321', 'Irwin',
                                  'Dundee')
    user = auth_register_v2('*****@*****.**', 'password2321232', 'Roland',
                            'Tiddle')
    channel = channels_create_v2(user_owner['token'], 'Irwins Channel', True)
    msg = message_send_v2(user_owner['token'], channel['channel_id'],
                          'testing123')
    with pytest.raises(AccessError):
        message_share_v1(user['token'], msg['message_id'], '',
                         channel['channel_id'], -1)
Exemplo n.º 8
0
def test_message_share_with_tag():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng")
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton")
    channel1 = channels_create_v2(user1['token'], 'Channel 1', True)
    channel_join_v2(user2['token'], channel1['channel_id'])
    channel2 = channels_create_v2(user1['token'], 'Channel 2', True)
    channel_join_v2(user2['token'], channel2['channel_id'])
    msg1str = "@joshhatton Hi friend"
    msg1 = message_send_v2(user1['token'], channel1['channel_id'], msg1str)
    message_share_v1(user1['token'], msg1['message_id'], '',
                     channel2['channel_id'], -1)
    assert len(notifications_get_v1(user2['token'])['notifications']) == 2
Exemplo n.º 9
0
def test_share_message_not_in_receiving_channel():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    channel_2 = channels_create_v2(user_2['token'], 'Channel 2', True)
    msg1 = message_send_v2(user_1['token'], channel_1['channel_id'],
                           'Hi Chan 1')
    msg2 = message_send_v2(user_2['token'], channel_2['channel_id'],
                           'Hi Chan 2')
    with pytest.raises(AccessError):
        message_share_v1(user_1['token'], msg2['message_id'], '', channel_2,
                         -1)
        message_share_v1(user_2['token'], msg1['message_id'], 'SPAM!',
                         channel_1, -1)
def test_common_case_dm(reg_user, crt_dm):

    clear_v2()
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    new_user_2 = reg_user(1)
    # new channel
    dm_id = crt_dm(user_token, [new_user_2['auth_user_id']])['dm_id']
    # new dm
    new_dm = crt_dm(user_token, [new_user_2['auth_user_id']])
    new_dm_id = new_dm['dm_id']

    # new message
    og_message_text = 'Hi !'
    og_message_id = message_senddm_v1(user_token, dm_id,
                                      og_message_text)['message_id']

    shared_message_text = "Hello World !"

    shared_message_id = message_share_v1(user_token, og_message_id,
                                         shared_message_text, -1,
                                         new_dm_id)['shared_message_id']

    messages = dm_messages_v1(user_token, new_dm_id, 0)['messages']
    for msg in messages:
        if msg['message_id'] == shared_message_id:
            assert msg[
                'message'] == f'{shared_message_text}\n\n{og_message_text}'
def test_common_case(reg_user, create_channel):

    clear_v2()
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id = new_user['auth_user_id']
    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']

    # new message
    og_message_text = 'Hi !'
    og_message_id = message_send_v2(user_token, channel_id,
                                    og_message_text)['message_id']

    shared_message_text = "Hello World !"

    shared_message_id = message_share_v1(user_token, og_message_id,
                                         shared_message_text, channel_id,
                                         dm_id)['shared_message_id']

    channel_messages = channel_messages_v2(user_token, channel_id,
                                           0)['messages']
    for msg in channel_messages:
        if msg['message_id'] == shared_message_id:
            assert msg[
                'message'] == f'{shared_message_text}\n\n{og_message_text}'
Exemplo n.º 12
0
def message_share():
    parameters = request.get_json()
    token = parameters['token']
    og_message_id = parameters['og_message_id']
    message = parameters['message']
    channel_id = parameters['channel_id']
    dm_id = parameters['dm_id']
    output = message_share_v1(token, og_message_id, message, channel_id, dm_id)
    return dumps(output)
def test_invalid_token(reg_user, create_channel):

    clear_v2()
    message = "Hello World!"
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id = new_user['auth_user_id']
    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']
    # new message
    og_message_id = message_send_v2(user_token, channel_id, message)

    with pytest.raises(AccessError):
        message_share_v1("invalid_token", og_message_id, message, channel_id,
                         dm_id)
Exemplo n.º 14
0
def message_share():
    info = request.get_json()
    token = info["token"]
    og_message_id = info["og_message_id"]
    message = info["message"]
    channel_id = info["channel_id"]
    dm_id = info["dm_id"]

    message_share = message_share_v1(token, og_message_id, message, channel_id,
                                     dm_id)
    return dumps(message_share)
Exemplo n.º 15
0
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_non_dm_member(reg_user, create_channel):
    clear_v2()
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id = new_user['auth_user_id']
    new_user_2 = reg_user(1)
    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']

    # new message
    og_message_text = 'Hi !'
    og_message_id = message_send_v2(user_token, channel_id,
                                    og_message_text)['message_id']

    shared_message_text = "Hello World !"
    with pytest.raises(AccessError):
        message_share_v1(new_user_2['token'], og_message_id,
                         shared_message_text, -1, dm_id)['shared_message_id']
def test_no_dm_channel(reg_user, create_channel):

    clear_v2()
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id = new_user['auth_user_id']
    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']
    message = "Hello World !"
    # new message
    og_message_id = message_send_v2(user_token, channel_id,
                                    message)['message_id']

    another_user = auth_register_v2("*****@*****.**", "goodpass123",
                                    "Stress", "Puppy")
    another_token = another_user['token']

    with pytest.raises(AccessError):
        message_share_v1(another_token, og_message_id, message, channel_id,
                         dm_id)
def test_invalid_dm_message_id():
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    user2 = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming',
                             'Lee')
    dm = dm_create_v1(user["token"], [user2["auth_user_id"]])
    message_senddm_v1(user['token'], dm['dm_id'], 'test')

    with pytest.raises(InputError):
        message_share_v1(user["token"], "invalid", "message", -1, dm["dm_id"])
        message_share_v1(user["token"], 58181211, "message", -1, dm["dm_id"])
        message_share_v1(user["token"], "", "message", -1, dm["dm_id"])
def test_invalid_channel_id():
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    channel = channels_create_v2(user['token'], 'TITLE', True)
    msg = message_send_v2(user['token'], channel['channel_id'], 'test')

    with pytest.raises(InputError):
        message_share_v1(user["token"], msg["message_id"], "message",
                         "invalidid", -1)
        message_share_v1(user["token"], msg["message_id"], "message", "", -1)
        message_share_v1(user["token"], msg["message_id"], "message", 74271199,
                         -1)
def test_message_share_simple_case_empty_ch():
    # Test a simple case with channel
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Terrence',
                            'Lin')
    channel = channels_create_v2(user['token'], 'Title', True)
    msg = message_send_v2(user['token'], channel['channel_id'], "NEW MESSAGE")
    msg_share = message_share_v1(user['token'], msg['message_id'], '',
                                 channel['channel_id'], -1)

    # Call top of list
    msg_list = channel_messages_v2(user['token'], channel['channel_id'], 0)
    assert len(msg_list['messages']) == 2
    assert msg_list['messages'][0]['message_id'] == msg_share[
        'shared_message_id']
    assert msg_list['messages'][0]['u_id'] == user['auth_user_id']
    # assert msg_list['messages'][0]['message'] == ' ----|NEW MESSAGE|----'
    assert msg_list['messages'][1]['message_id'] == msg['message_id']
    assert msg_list['messages'][1]['u_id'] == user['auth_user_id']
    assert msg_list['messages'][1]['message'] == 'NEW MESSAGE'
def test_message_share_simple_case_ch():
    # Test a simple case with channel
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Terrence',
                            'Andrews')
    channel = channels_create_v2(user['token'], 'Title', True)
    msg = message_send_v2(user['token'], channel['channel_id'], "Hey Guys!")
    msg_share = message_share_v1(user['token'], msg['message_id'],
                                 'look guys look', channel['channel_id'], -1)

    # Call top of list
    msg_list = channel_messages_v2(user['token'], channel['channel_id'], 0)
    assert len(msg_list['messages']) == 2
    assert msg_list['messages'][0]['message_id'] == msg_share[
        'shared_message_id']
    assert msg_list['messages'][0]['u_id'] == user['auth_user_id']
    # assert msg_list['messages'][0]['message'] == 'look guys look ----|Hey Guys!|----'
    assert msg_list['messages'][1]['message_id'] == msg['message_id']
    assert msg_list['messages'][1]['u_id'] == user['auth_user_id']
    assert msg_list['messages'][1]['message'] == 'Hey Guys!'
def test_message_share_simple_case_empty_dm():
    # Test a empty msg share case with dm
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Terrence',
                            'Andrews')
    user2 = auth_register_v2('*****@*****.**', 'passwod298372', 'Bing', 'Lee')
    dm = dm_create_v1(user['token'], [user2['auth_user_id']])
    msg = message_senddm_v1(user['token'], dm['dm_id'], "TEST!")
    msg_share = message_share_v1(user['token'], msg['message_id'], '', -1,
                                 dm['dm_id'])

    # Call top of list
    msg_list = dm_messages_v1(user['token'], dm['dm_id'], 0)
    assert len(msg_list['messages']) == 2
    assert msg_list['messages'][0]['message_id'] == msg_share[
        'shared_message_id']
    assert msg_list['messages'][0]['u_id'] == user['auth_user_id']
    assert msg_list['messages'][0]['message'] == ' ----|TEST!|----'
    assert msg_list['messages'][1]['message_id'] == msg['message_id']
    assert msg_list['messages'][1]['u_id'] == user['auth_user_id']
    assert msg_list['messages'][1]['message'] == 'TEST!'
def test_auth_user_not_member_dm():
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    user2 = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming',
                             'Lee')
    user3 = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming',
                             'Lee')
    dm = dm_create_v1(user["token"], [user2["auth_user_id"]])
    msg = message_senddm_v1(user['token'], dm['dm_id'], 'test')

    with pytest.raises(AccessError):
        message_share_v1(user3["token"], msg["message_id"], "message", -1,
                         dm["dm_id"])
        message_share_v1(user3["token"], msg["message_id"], "message", -1,
                         dm["dm_id"])
        message_share_v1(user3["token"], msg["message_id"], "message", -1,
                         dm["dm_id"])
Exemplo n.º 24
0
def test_message_share_v1_errors(user_setup, channel_setup, dm_setup,
                                 message_setup):

    # Test 1:
    # invalid token
    with pytest.raises(AccessError):
        message_share_v1(make_token(414345), 0, "invalid token error", 0, -1)
    # "Invalid token"

    # Test 2:
    # auhtorised user is not part of channel
    with pytest.raises(AccessError):
        message_share_v1(make_token(2), 3, "user not part of channel error", 2,
                         -1)
    # "Authorised user is not part of the channel"
    with pytest.raises(AccessError):
        message_share_v1(make_token(0), 18, "user not part of dm error", -1, 2)
Exemplo n.º 25
0
def test_share_multiple_message():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    channel_2 = channels_create_v2(user_1['token'], 'Channel 2', True)
    msg1 = message_send_v2(user_1['token'], channel_1['channel_id'],
                           'Hi Chan 1')
    msg2 = message_send_v2(user_1['token'], channel_2['channel_id'],
                           'Hi Chan 2')
    msg3 = message_share_v1(user_1['token'], msg1['message_id'], '',
                            channel_2['channel_id'], -1)
    msg4 = message_share_v1(user_1['token'], msg2['message_id'], 'SPAM!',
                            channel_1['channel_id'], -1)

    assert channel_messages_v2(
        user_1['token'], channel_1['channel_id'],
        0)['messages'][0]['message'] == "Hi Chan 2\nSPAM!"
    assert channel_messages_v2(user_1['token'], channel_2['channel_id'],
                               0)['messages'][0]['message'] == "Hi Chan 1"
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 2
    assert len(
        channel_messages_v2(user_1['token'], channel_2['channel_id'],
                            0)['messages']) == 2
    assert msg1['message_id'] != msg4['shared_message_id']
    assert msg1['message_id'] != msg3['shared_message_id']

    with pytest.raises(InputError):
        message_share_v1(user_1['token'], msg1['message_id'], 'a' * 991,
                         channel_2['channel_id'], -1)
    with pytest.raises(InputError):
        message_share_v1(user_1['token'], msg1['message_id'], 'a' * 1000,
                         channel_2['channel_id'], -1)
    with pytest.raises(AccessError):
        message_share_v1(user_1['token'], msg1['message_id'], 'a', -1, -1)
    with pytest.raises(InputError):
        message_share_v1(user_1['token'], msg1['message_id'], 'a',
                         channel_2['channel_id'], -2)

    msg5 = message_send_v2(user_1['token'], channel_1['channel_id'],
                           'Channel 1 > Channel 2')
    msg6 = message_send_v2(user_1['token'], channel_2['channel_id'],
                           'Channel 1 stinkyyyy')
    msg7 = message_share_v1(user_1['token'], msg5['message_id'], '123',
                            channel_2['channel_id'], -1)
    msg8 = message_share_v1(user_1['token'], msg6['message_id'], '',
                            channel_1['channel_id'], -1)

    assert channel_messages_v2(
        user_1['token'], channel_1['channel_id'],
        0)['messages'][0]['message'] == "Channel 1 stinkyyyy"
    assert channel_messages_v2(
        user_1['token'], channel_2['channel_id'],
        0)['messages'][0]['message'] == "Channel 1 > Channel 2\n123"
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 4
    assert len(
        channel_messages_v2(user_1['token'], channel_2['channel_id'],
                            0)['messages']) == 4
    assert msg5['message_id'] != msg8['shared_message_id']
    assert msg5['message_id'] != msg7['shared_message_id']
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
Exemplo n.º 27
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
Exemplo n.º 28
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
        }
    }