示例#1
0
def test_senddm_different_channels():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    dm_2 = dm_create_v1(user_2['token'], [user_3['auth_user_id']])
    dm_3 = dm_create_v1(user_3['token'], [user_1['auth_user_id']])
    msg1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Hello World!')
    msg2 = message_senddm_v1(user_2['token'], dm_2['dm_id'], 'Hello World!')
    msg3 = message_senddm_v1(user_3['token'], dm_3['dm_id'], 'Hello World!')
    assert type(msg1) == dict
    assert type(msg1['message_id']) == int
    assert type(msg2) == dict
    assert type(msg2['message_id']) == int
    assert type(msg3) == dict
    assert type(msg3['message_id']) == int
    assert dm_messages_v1(user_1['token'], dm_1['dm_id'],
                          0)['messages'][0]['message'] == "Hello World!"
    assert dm_messages_v1(user_2['token'], dm_2['dm_id'],
                          0)['messages'][0]['message'] == "Hello World!"
    assert dm_messages_v1(user_3['token'], dm_3['dm_id'],
                          0)['messages'][0]['message'] == "Hello World!"
    assert msg1 != msg2
    assert msg1 != msg3
    assert msg2 != msg3
def create_dms():
    clear_v1()
    user1 = auth_register_v2('*****@*****.**', '123abc!@#', 'a', 'b')
    user2 = auth_register_v2('*****@*****.**', '123abc!@#', 'c', 'd')
    user3 = auth_register_v2('*****@*****.**', '123abc!@#', 'e', 'f')
    user4 = auth_register_v2('*****@*****.**', '123abc!@#', 'g', 'h')
    users = [user1, user2, user3, user4]
    
    user_list = []
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    dm_1 = dm_create_v1(users[0]['token'], user_list)#create dm 1

    user_list = []
    user_list.append(users[0]['auth_user_id'])
    dm_2 = dm_create_v1(users[1]['token'], user_list)#create dm 2 

    user_list = []
    user_list.append(users[0]['auth_user_id'])
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    dm_3 = dm_create_v1(users[3]['token'], user_list)#create dm 3


    return {'users': users,
            'dms': [dm_1, dm_2, dm_3]}
示例#3
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'])
示例#4
0
def create_dms():
    clear_v1()
    user1 = auth_register_v2('*****@*****.**', '123abc!@#', 'a', 'b')
    user2 = auth_register_v2('*****@*****.**', '123abc!@#', 'c', 'd')
    user3 = auth_register_v2('*****@*****.**', '123abc!@#', 'e', 'f')
    user4 = auth_register_v2('*****@*****.**', '123abc!@#', 'g', 'h')
    users = [user1, user2, user3, user4]

    user_list = []
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    dm_1 = dm_create_v1(users[0]['token'], user_list)  #create dm 1

    user_list = []
    user_list.append(users[0]['auth_user_id'])
    dm_2 = dm_create_v1(users[1]['token'], user_list)  #create dm 2

    user_list = []
    user_list.append(users[0]['auth_user_id'])
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    dm_3 = dm_create_v1(users[3]['token'], user_list)  #create dm 3

    message_ids_1 = []
    #correct_msg_1 = []
    for i in range(0, 50):
        msg = str(i)
        message_id = message_senddm_v1(users[0]['token'], dm_1['dm_id'], msg)
        message_ids_1.append(message_id)
        #correct_msg_1.append(msg)

    message_ids_2 = []
    for i in range(200, 400):
        msg = str(i)
        message_id = message_senddm_v1(users[0]['token'], dm_2['dm_id'], msg)
        message_ids_2.append(message_id)

    # message_ids_3 = []
    # for i in range(0, 800):
    #     msg = str(i)
    #     message_id = message_senddm_v1(users[0]['token'], dm_3['dm_id'], msg)
    #     message_ids_3.append(message_id)

    return {
        'users': users,
        'dms': [dm_1, dm_2, dm_3],
        'msg_ids': [message_ids_1, message_ids_2]
    }
示例#5
0
def test_invalid_token():
    """ Tests return of expected output when given a token that doesn't exist,
        or if the user is not in the channel/dm.
    """
    clear_v1()
    # Token doesnt exist
    user_1 = auth_register_v2('*****@*****.**', 'happydays1', 'Eric',
                              'Zheng')

    with pytest.raises(AccessError):
        notifications_get_v1(user_1['token'] + 'bug')

    # User not in channel
    user_2 = auth_register_v2('*****@*****.**', 'happydays2', 'Josh',
                              'Hatton')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)

    user_2_handle = user_profile_v2(user_1['token'], user_2['auth_user_id'])

    message_send_v2(user_1['token'], channel_1['channel_id'],
                    f"Hi @{user_2_handle['user']['handle_str']}")

    assert notifications_get_v1(user_2['token']) == {'notifications': []}

    # User not in dm
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    user_3 = auth_register_v2('*****@*****.**', 'hihihi!!!', 'Bunny',
                              'Dong')
    user_3_handle = user_profile_v2(user_1['token'], user_3['auth_user_id'])

    message_senddm_v1(user_1['token'], dm_1['dm_id'],
                      f"Hello @{user_3_handle['user']['handle_str']}")

    assert notifications_get_v1(user_3['token']) == {'notifications': []}
示例#6
0
def test_removed_dms():
    """Tests that sent dm messages are now 'Removed user' after the user is
    removed
    """
    clear_v1()
    user_1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                              "Zheng")
    user_2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                              "Hatton")

    dm_1 = dm_create_v1(user_1["token"], [user_2["auth_user_id"]])

    message_senddm_v1(user_1["token"], dm_1["dm_id"], "Hello user 2!")
    message_2 = message_senddm_v1(user_2["token"], dm_1["dm_id"],
                                  "Nice to meet you user 1")
    message_senddm_v1(user_2["token"], dm_1["dm_id"], "you are a donkey :)")

    assert admin_user_remove_v1(user_1["token"], user_2["auth_user_id"]) == {}

    dm_1_messages = dm_messages_v1(user_1["token"], dm_1["dm_id"], 0)
    for dm in dm_1_messages["messages"]:
        if dm["message_id"] == message_2["message_id"]:
            assert dm["message"] == "Removed user"

    clear_v1()
def dm_create_v1_http():
    data = request.get_json()
    token = str(data.get('token'))
    u_ids = data.get('u_ids')

    return_val = dm_create_v1(token, u_ids)

    return dumps(return_val)
示例#8
0
def create_input():
    clear_v1()

    data_test_users = [
        auth_register_v2("*****@*****.**", "validpassword", "Josh", "Hatton"),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny", "Dong"),
        auth_register_v2("*****@*****.**", "password3", "Jordan", "Milch"),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean", "Zworestine"),
        auth_register_v2("*****@*****.**", "finalpassword", "Eric", "Zheng"),
    ]

    data_test_dms = [
        dm_create_v1(data_test_users[0]["token"], [data_test_users[1]["auth_user_id"], data_test_users[2]["auth_user_id"]]),
        dm_create_v1(data_test_users[1]["token"], [data_test_users[3]["auth_user_id"]]),
    ]

    return [data_test_users, data_test_dms]
示例#9
0
def test_senddm_invalid_access():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    with pytest.raises(AccessError):
        message_senddm_v1(user_3['token'], dm_1['dm_id'], 'Sliding in')
        message_senddm_v1(user_3['token'], dm_1['dm_id'], 'Back again')
示例#10
0
def test_edit_from_dm():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in')
    message_edit_v2(user_1['token'], msg_1['message_id'], 'Beep beep lettuce')
    assert dm_messages_v1(user_1['token'], dm_1['dm_id'],
                          0)['messages'][0]['message'] == 'Beep beep lettuce'
示例#11
0
def test_senddm_invalid_input():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    with pytest.raises(InputError):
        message_senddm_v1(user_1['token'], dm_1['dm_id'], 'a' * 1001)
        message_senddm_v1(user_1['token'], dm_1['dm_id'], 'b' * 1001)
        message_senddm_v1(user_1['token'], dm_1['dm_id'], 'b' * 1001)
示例#12
0
def test_senddm_basic():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in')
    assert type(msg_1) == dict
    assert type(msg_1['message_id']) == int
    assert dm_messages_v1(user_1['token'], dm_1['dm_id'],
                          0)['messages'][0]['message'] == "Sliding in"
示例#13
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'])
示例#14
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_dm_create_errors(register_users):
    users = register_users

    user_list = []
    user_list.append(1000)  #wrong u_id
    user_list.append(121323)

    user_1 = users[0]

    with pytest.raises(InputError):  #invalid u_id
        dm_create_v1(user_1['token'], user_list)  #try to create dm 1

    user_list = []
    user_list.append(33)  #wrong u_id
    user_list.append(3245)

    user_1 = users[0]

    with pytest.raises(InputError):  #invalid u_id
        dm_create_v1(user_1['token'], user_list)  #try to create dm 1

    with pytest.raises(AccessError):
        dm_create_v1("fseffew", user_list)

    clear_v1()
示例#16
0
def test_mixed_basic():
    clear_v1()    
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    channels_create_v2(result1['token'], "The party channel 1", True)
    channels_create_v2(result1['token'], "The party channel 2", True)
    dm_create_v1(result1['token'], [result2['auth_user_id']])

    output = user_stats(result1['token'])

    dreams = users_stats(result1['token'])
    assert len(output['user_stats']) == 4
    assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 2
    assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output['user_stats']['involvement_rate'] == 1

    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 2
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 1
    assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0
    assert dreams['dreams_stats']['utilization_rate'] == 2/3
示例#17
0
def test_tag_sendlaterdm():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng")
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton")
    dm1 = dm_create_v1(user1['token'], [user2['auth_user_id']])
    msg1str = "@joshhatton sup"
    current_time = int(time.time())
    message_sendlaterdm_v1(user1['token'], dm1['dm_id'], msg1str,
                           current_time + 2)
    assert len(notifications_get_v1(user2['token'])['notifications']) == 1
    time.sleep(3)
    assert len(notifications_get_v1(user2['token'])['notifications']) == 2
示例#18
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
示例#19
0
def test_mixed_harder():
    clear_v1()    
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    channel1 = channels_create_v2(result1['token'], "The party channel 1", True)['channel_id']
    message_send_v2(result1['token'], channel1, 'hello how are you')
    dm_create_v1(result1['token'], [result2['auth_user_id']])
    output = user_stats(result1['token'])
    assert len(output['user_stats']) == 4
    assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1
    assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output['user_stats']['involvement_rate'] == 1
    channels_create_v2(result1['token'], "The party channel 2", True)
    channel3 = channels_create_v2(result2['token'], "The party channel 3", True)['channel_id']
    channel_addowner_v1(result2['token'], channel3, result1['auth_user_id'])
    message_send_v2(result2['token'], channel3, 'hello how are you')
    output1 = user_stats(result1['token'])
    output2 = user_stats(result2['token'])
    assert len(output1['user_stats']) == 4
    assert output1['user_stats']['channels_joined'][-1]['num_channels_joined'] == 3
    assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output1['user_stats']['involvement_rate'] == 5/6
    assert len(output2['user_stats']) == 4
    assert output2['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1
    assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output2['user_stats']['involvement_rate'] == 3/6

    dreams = users_stats(result1['token'])
    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 3
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 1
    assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 2
    assert dreams['dreams_stats']['utilization_rate'] == 1    
示例#20
0
def test_removed_from_dm():
    """Tests that a user is removed from a dm"""
    clear_v1()
    user_1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                              "Zheng")
    user_2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                              "Hatton")

    dm_1 = dm_create_v1(user_1["token"], [])
    dm_invite_v1(user_1["token"], dm_1["dm_id"], user_2["auth_user_id"])

    admin_user_remove_v1(user_1["token"], user_2["auth_user_id"])

    members = dm_details_v1(user_1["token"], dm_1["dm_id"])["members"]

    assert user_2["auth_user_id"] not in [m["u_id"] for m in members]
示例#21
0
def test_zero_division():
    clear_v1()    
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    result2 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    dm1 = dm_create_v1(result1['token'], [result2['auth_user_id']])
    message_senddm_v1(result1['token'], dm1['dm_id'], "Pls")
    dm_remove_v1(result1['token'], dm1['dm_id'])
    output = user_stats(result1['token'])

    dreams = users_stats(result1['token'])
    assert len(output['user_stats']) == 4
    assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 0
    assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 0
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output['user_stats']['involvement_rate'] == 0

    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 0
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 0
    assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 0
    assert dreams['dreams_stats']['utilization_rate'] == 0
def test_dm_create(register_users):
    users = register_users
    user_list = []
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    user_1 = users[0]
    dm_1 = dm_create_v1(user_1['token'], user_list)  #create dm 1

    profile_0 = user_profile_v2(user_1['token'],
                                user_1['auth_user_id'])['user']
    profile_1 = user_profile_v2(user_1['token'],
                                users[1]['auth_user_id'])['user']
    profile_2 = user_profile_v2(user_1['token'],
                                users[2]['auth_user_id'])['user']
    profile_3 = user_profile_v2(user_1['token'],
                                users[3]['auth_user_id'])['user']

    rt_val = dm_details_v1(user_1['token'], dm_1['dm_id'])
    assert rt_val['name'] == "ab, cd, ef"
    assert sorted(rt_val['members'],
                  key=lambda x: x['u_id']) == sorted([
                      {
                          'u_id': users[1]['auth_user_id'],
                          'name_first': 'c',
                          'name_last': 'd',
                          'email': '*****@*****.**',
                          'handle_str': 'cd',
                          'profile_img_url': profile_1['profile_img_url'],
                      },
                      {
                          'u_id': users[2]['auth_user_id'],
                          'name_first': 'e',
                          'name_last': 'f',
                          'email': '*****@*****.**',
                          'handle_str': 'ef',
                          'profile_img_url': profile_2['profile_img_url'],
                      },
                      {
                          'u_id': users[0]['auth_user_id'],
                          'name_first': 'a',
                          'name_last': 'b',
                          'email': '*****@*****.**',
                          'handle_str': 'ab',
                          'profile_img_url': profile_0['profile_img_url'],
                      },
                  ],
                                                     key=lambda x: x['u_id'])

    user_2 = users[1]
    user_list = []
    user_list.append(users[0]['auth_user_id'])
    dm_2 = dm_create_v1(user_2['token'], user_list)  #create dm 2

    rt_val = dm_details_v1(user_2['token'], dm_2['dm_id'])
    assert rt_val['name'] == "ab, cd"
    assert sorted(rt_val['members'],
                  key=lambda x: x['u_id']) == sorted([
                      {
                          'u_id': users[1]['auth_user_id'],
                          'name_first': 'c',
                          'name_last': 'd',
                          'email': '*****@*****.**',
                          'handle_str': 'cd',
                          'profile_img_url': profile_1['profile_img_url'],
                      },
                      {
                          'u_id': users[0]['auth_user_id'],
                          'name_first': 'a',
                          'name_last': 'b',
                          'email': '*****@*****.**',
                          'handle_str': 'ab',
                          'profile_img_url': profile_0['profile_img_url'],
                      },
                  ],
                                                     key=lambda x: x['u_id'])

    user_4 = users[3]
    user_list = []
    user_list.append(users[0]['auth_user_id'])
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    dm_3 = dm_create_v1(user_4['token'], user_list)  #create dm 3

    rt_val = dm_details_v1(user_4['token'], dm_3['dm_id'])
    assert rt_val['name'] == "ab, cd, ef, gh"
    assert sorted(rt_val['members'],
                  key=lambda x: x['u_id']) == sorted([
                      {
                          'u_id': users[0]['auth_user_id'],
                          'name_first': 'a',
                          'name_last': 'b',
                          'email': '*****@*****.**',
                          'handle_str': 'ab',
                          'profile_img_url': profile_0['profile_img_url'],
                      },
                      {
                          'u_id': users[1]['auth_user_id'],
                          'name_first': 'c',
                          'name_last': 'd',
                          'email': '*****@*****.**',
                          'handle_str': 'cd',
                          'profile_img_url': profile_1['profile_img_url'],
                      },
                      {
                          'u_id': users[2]['auth_user_id'],
                          'name_first': 'e',
                          'name_last': 'f',
                          'email': '*****@*****.**',
                          'handle_str': 'ef',
                          'profile_img_url': profile_2['profile_img_url'],
                      },
                      {
                          'u_id': users[3]['auth_user_id'],
                          'name_first': 'g',
                          'name_last': 'h',
                          'email': '*****@*****.**',
                          'handle_str': 'gh',
                          'profile_img_url': profile_3['profile_img_url'],
                      },
                  ],
                                                     key=lambda x: x['u_id'])

    clear_v1()
示例#23
0
def create_input():
    clear_v1()

    data_test_users = [
        auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                         "Zheng"),
        auth_register_v2("*****@*****.**", "validpassword", "Josh",
                         "Hatton"),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                         "Dong"),
        auth_register_v2("*****@*****.**", "password3", "Jordan",
                         "Milch"),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                         "Zworestine"),
    ]

    data_test_users_handles = [
        user_profile_v2(data_test_users[0]['token'],
                        data_test_users[0]['auth_user_id']),
        user_profile_v2(data_test_users[0]['token'],
                        data_test_users[1]['auth_user_id']),
        user_profile_v2(data_test_users[0]['token'],
                        data_test_users[2]['auth_user_id']),
        user_profile_v2(data_test_users[0]['token'],
                        data_test_users[3]['auth_user_id']),
        user_profile_v2(data_test_users[0]['token'],
                        data_test_users[4]['auth_user_id']),
    ]

    # user 1 is owner of channel 1
    # user 2 is owner of channel 2
    # user 3 is owner of channel 3 (private channel)
    data_test_channels = [
        channels_create_v2(data_test_users[0]['token'], 'Channel 1', True),
        channels_create_v2(data_test_users[1]['token'], 'Channel 2', True),
        channels_create_v2(data_test_users[2]['token'], 'Private', False)
    ]

    # user 1 has dm with user 2 in dm 1
    # user 3 has dm with user 4 in dm2
    # user 5 has dm with user 2 in dm3
    data_test_dms = [
        dm_create_v1(data_test_users[0]['token'],
                     [data_test_users[1]['auth_user_id']]),
        dm_create_v1(data_test_users[2]['token'],
                     [data_test_users[3]['auth_user_id']]),
        dm_create_v1(data_test_users[4]['token'],
                     [data_test_users[1]['auth_user_id']])
    ]

    data_test_messages = [
        f"Hello @{data_test_users_handles[0]}, how are you on such a fine lovely day? I hope you are well!",
        f"Hello @{data_test_users_handles[1]}, can you send me homework answers from yesterday please? Thanks!",
        f"Hello @{data_test_users_handles[2]}, I heard that your knees are the finest knees in all of Australia, is this true?",
        f"@{data_test_users_handles[3]} is cool.",
        f"@{data_test_users_handles[4]} is a donkey.",
        f"@{data_test_users_handles[2]} is an even bigger donkey than @{data_test_users_handles[4]}"
    ]

    return [
        data_test_users, data_test_users_handles, data_test_channels,
        data_test_dms, data_test_messages
    ]
示例#24
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()
示例#25
0
def create_input():
    clear_v1()

    data_test_users = [
        auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                         "Zheng"),
        auth_register_v2("*****@*****.**", "validpassword", "Josh",
                         "Hatton"),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                         "Dong"),
        auth_register_v2("*****@*****.**", "password3", "Jordan",
                         "Milch"),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                         "Zworestine"),
    ]

    data_test_channels = [
        channels_create_v2(data_test_users[0]["token"], "Channel 1", True),
        channels_create_v2(data_test_users[1]["token"], "Private", False),
    ]

    # User1, User3, User 4 in channel 1
    # User2, User 5 in channel 2
    channel_join_v2(data_test_users[2]["token"],
                    data_test_channels[0]["channel_id"])
    channel_join_v2(data_test_users[3]["token"],
                    data_test_channels[0]["channel_id"])
    channel_invite_v2(data_test_users[1]["token"],
                      data_test_channels[1]["channel_id"],
                      data_test_users[4]["auth_user_id"])

    # User 1, user3, user4 sends a message to channel 1
    # User2, user5 sends a message to channel 2
    data_test_channel_messages = [
        message_send_v2(
            data_test_users[0]["token"],
            data_test_channels[0]["channel_id"],
            "Look, I was gonna go easy on you \
                                 Not to hurt your feelings \
                                 But I'm only going to get this one chance \
                                 Something's wrong, I can feel it",
        ),
        message_send_v2(
            data_test_users[1]["token"],
            data_test_channels[1]["channel_id"],
            "Can we pretend that airplanes in the night \
                                 sky are like shootin' stars \
                                 I could really use a wish right now, wish right \
                                 now, wish right now Can we pretend that \
                                 airplanes in the night sky are like shootin'",
        ),
        message_send_v2(
            data_test_users[2]["token"],
            data_test_channels[0]["channel_id"],
            "All I want is nothing more \
                                  To hear you knocking at my door \
                                  'Cause if I could see your face once more \
                                  I could die a happy man I'm sure",
        ),
        message_send_v2(
            data_test_users[3]["token"],
            data_test_channels[0]["channel_id"],
            "I've been staring at the edge of the water \
                                  'Long as I can remember \
                                  Never really knowing why",
        ),
        message_send_v2(
            data_test_users[4]["token"],
            data_test_channels[1]["channel_id"],
            "I am so so so so so sick of writing these tests \
                                  someone please send help i am so tired lol.",
        ),
    ]

    # user 1 has dm with user 2
    # user 3 has dm with user 4
    # user 5 has dm with user 2
    data_test_dms = [
        dm_create_v1(data_test_users[0]["token"],
                     [data_test_users[1]["auth_user_id"]]),
        dm_create_v1(data_test_users[2]["token"],
                     [data_test_users[3]["auth_user_id"]]),
        dm_create_v1(data_test_users[4]["token"],
                     [data_test_users[1]["auth_user_id"]]),
    ]

    # user 1, user_2 sends dm to dm_1
    # user 3, user 4 sends dm to dm_2
    # user 5 sends dm to dm_3
    data_test_dm_messages = [
        message_senddm_v1(data_test_users[0]["token"],
                          data_test_dms[0]["dm_id"], "Hello user 2!"),
        message_senddm_v1(data_test_users[1]["token"],
                          data_test_dms[0]["dm_id"], "Hi user 1!"),
        message_senddm_v1(data_test_users[2]["token"],
                          data_test_dms[1]["dm_id"], "How are you user 4?"),
        message_senddm_v1(data_test_users[3]["token"],
                          data_test_dms[1]["dm_id"], "I am fine user 3!"),
        message_senddm_v1(data_test_users[4]["token"],
                          data_test_dms[2]["dm_id"], "Shut up user 2."),
    ]

    return [
        data_test_users, data_test_channels, data_test_channel_messages,
        data_test_dms, data_test_dm_messages
    ]