def test_message_send_invalid_channel_id():
    # Test if InputError is raised when given invalid channel id
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'password123', 'Terry', 'Wills')
    channels_create_v2(user['token'], 'TERRYS CHANNEL', True)
    with pytest.raises(InputError):
        message_send_v2(user['token'], -1, 'anyone here?')
Exemple #2
0
def test_different_permissions_edit():
    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'],
                           'Hello World!')
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Hello World!"
    assert message_edit_v2(user_1['token'], msg1['message_id'],
                           'Goodbye World!') == {}
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Goodbye World!"
    assert message_edit_v2(user_2['token'], msg1['message_id'],
                           'Hello Again World!') == {}
    assert channel_messages_v2(
        user_1['token'], channel_1['channel_id'],
        0)['messages'][0]['message'] == "Hello Again World!"
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 1
    with pytest.raises(AccessError):
        message_edit_v2(user_3['token'], msg1['message_id'], 'Goodbye Again!')
    assert channel_messages_v2(
        user_1['token'], channel_1['channel_id'],
        0)['messages'][0]['message'] == "Hello Again World!"
Exemple #3
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 test_dm_create_v1():
    clear_v1()
    auth_user_1_token = auth_register_v2("*****@*****.**", "123456", "Andy",
                                         "Dandy")["token"]
    auth_user_2_id = auth_register_v2("*****@*****.**", "123456", "Bob",
                                      "Hobs")["auth_user_id"]
    auth_user_3_id = auth_register_v2("*****@*****.**", "123456", "Chris",
                                      "Wiz")["auth_user_id"]
    dm_data_1 = dm_create_v1(auth_user_1_token,
                             [auth_user_2_id, auth_user_3_id])
    dm_id_1 = dm_data_1["dm_id"]
    dm_name_1 = dm_data_1["dm_name"]
    dm_list = dm_list_v1(auth_user_1_token)
    assert dm_list["dms"][0]["dm_id"] == dm_id_1
    assert dm_list["dms"][0]["name"] == dm_name_1

    auth_user_4_id = auth_register_v2("*****@*****.**", "123456", "Joshua",
                                      "King")["auth_user_id"]
    dm_data_2 = dm_create_v1(auth_user_1_token,
                             [auth_user_3_id, auth_user_4_id])
    dm_id_2 = dm_data_2["dm_id"]
    dm_name_2 = dm_data_2["dm_name"]
    dm_list = dm_list_v1(auth_user_1_token)
    assert dm_list["dms"][1]["dm_id"] == dm_id_2
    assert dm_list["dms"][1]["name"] == dm_name_2
def create_dms():
    clear_v1()
    user1 = auth_register_v2('*****@*****.**', '123abc!@#', 'a', 'b')
    user2 = auth_register_v2('*****@*****.**', '123abc!@#', 'c', 'd')
    user3 = auth_register_v2('*****@*****.**', '123abc!@#', 'e', 'f')
    user4 = auth_register_v2('*****@*****.**', '123abc!@#', 'g', 'h')
    users = [user1, user2, user3, user4]
    
    user_list = []
    user_list.append(users[1]['auth_user_id'])
    user_list.append(users[2]['auth_user_id'])
    dm_1 = dm_create_v1(users[0]['token'], user_list)#create dm 1

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

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


    return {'users': users,
            'dms': [dm_1, dm_2, dm_3]}
def test_dm_leave_errors(create_dms):
    users = create_dms['users']
    dm_1 = create_dms['dms'][0]
    dm_2 = create_dms['dms'][1]
    #dm_3 = create_dms['dms'][2]

    #wrong dm id
    with pytest.raises(InputError):
        dm_leave_v1(users[0]['token'], 100)
    with pytest.raises(InputError):
        dm_leave_v1(users[1]['token'], 100)   
    

    #not in the dm
    with pytest.raises(AccessError):
        dm_leave_v1(users[3]['token'], dm_1['dm_id'])
    with pytest.raises(AccessError):
        dm_leave_v1(users[3]['token'], dm_2['dm_id'])
    with pytest.raises(AccessError):
        dm_leave_v1(users[2]['token'], dm_2['dm_id'])

    #invalid token
    with pytest.raises(AccessError):
        dm_leave_v1("ded", dm_1['dm_id'])

    clear_v1()
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_channels = [
        channels_create_v2(data_test_users[0]["token"], "First Channel", True),
        channels_create_v2(data_test_users[1]["token"], "Second Channel",
                           True),
        channels_create_v2(data_test_users[2]["token"], "Third Channel",
                           False),
    ]

    return [data_test_users, data_test_channels]
Exemple #8
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': []}
Exemple #9
0
def test_two_tags():
    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'])
    msg1str = "@ericzheng @joshhatton"
    message_send_v2(user1['token'], channel1['channel_id'], msg1str)

    assert notifications_get_v1(user1['token']) == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"ericzheng tagged you in Channel 1: {msg1str[0:20]}"
        }]
    }
    assert notifications_get_v1(user2['token']) == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"ericzheng tagged you in Channel 1: {msg1str[0:20]}"
        }]
    }
def test_multiple_sethandle():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'one',
                               'aye')
    result2 = auth_register_v2('*****@*****.**', 'password', 'two',
                               'bee')
    result3 = auth_register_v2('*****@*****.**', 'password', 'three',
                               'cee')
    output1 = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2 = user_profile_v2(result1['token'], result2['auth_user_id'])
    output3 = user_profile_v2(result1['token'], result3['auth_user_id'])
    assert output1['user']['handle_str'] == 'oneaye'
    assert output2['user']['handle_str'] == 'twobee'
    assert output3['user']['handle_str'] == 'threecee'
    user_profile_sethandle_v1(result1['token'], 'newhandle')
    user_profile_sethandle_v1(result2['token'], 'random')
    user_profile_sethandle_v1(result3['token'], 'compstudent')
    output1a = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2a = user_profile_v2(result2['token'], result2['auth_user_id'])
    output3a = user_profile_v2(result3['token'], result3['auth_user_id'])

    assert output1a['user']['handle_str'] == 'newhandle'
    assert output2a['user']['handle_str'] == 'random'
    assert output3a['user']['handle_str'] == 'compstudent'
    clear_v1()
def test_multiple_user():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'one',
                               'aye')
    result2 = auth_register_v2('*****@*****.**', 'password', 'two',
                               'bee')
    result3 = auth_register_v2('*****@*****.**', 'password', 'three',
                               'cee')
    output1 = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2 = user_profile_v2(result1['token'], result2['auth_user_id'])
    output3 = user_profile_v2(result1['token'], result3['auth_user_id'])
    assert len(output1) == 1
    assert len(output1['user']) == 6
    assert output1['user']['email'] == '*****@*****.**'
    assert output1['user']['name_first'] == 'one'
    assert output1['user']['name_last'] == 'aye'
    assert output1['user']['handle_str'] == 'oneaye'
    assert len(output2) == 1
    assert len(output2['user']) == 6
    assert output2['user']['email'] == '*****@*****.**'
    assert output2['user']['name_first'] == 'two'
    assert output2['user']['name_last'] == 'bee'
    assert output2['user']['handle_str'] == 'twobee'
    assert len(output3) == 1
    assert len(output3['user']) == 6
    assert output3['user']['email'] == '*****@*****.**'
    assert output3['user']['name_first'] == 'three'
    assert output3['user']['name_last'] == 'cee'
    assert output3['user']['handle_str'] == 'threecee'
    clear_v1()
def test_multiple_setemail():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'one',
                               'aye')
    result2 = auth_register_v2('*****@*****.**', 'password', 'two',
                               'bee')
    result3 = auth_register_v2('*****@*****.**', 'password', 'three',
                               'cee')
    output1 = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2 = user_profile_v2(result1['token'], result2['auth_user_id'])
    output3 = user_profile_v2(result1['token'], result3['auth_user_id'])
    assert output1['user']['email'] == '*****@*****.**'
    assert output2['user']['email'] == '*****@*****.**'
    assert output3['user']['email'] == '*****@*****.**'
    user_profile_setemail_v2(result1['token'], '*****@*****.**')
    user_profile_setemail_v2(result2['token'], '*****@*****.**')
    user_profile_setemail_v2(result3['token'], '*****@*****.**')
    output1a = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2a = user_profile_v2(result2['token'], result2['auth_user_id'])
    output3a = user_profile_v2(result3['token'], result3['auth_user_id'])

    assert output1a['user']['email'] == '*****@*****.**'
    assert output2a['user']['email'] == '*****@*****.**'
    assert output3a['user']['email'] == '*****@*****.**'
    clear_v1()
def test_multiple_setname():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'one',
                               'aye')
    result2 = auth_register_v2('*****@*****.**', 'password', 'two',
                               'bee')
    result3 = auth_register_v2('*****@*****.**', 'password', 'three',
                               'cee')
    output1 = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2 = user_profile_v2(result1['token'], result2['auth_user_id'])
    output3 = user_profile_v2(result1['token'], result3['auth_user_id'])
    assert output1['user']['name_first'] == 'one'
    assert output1['user']['name_last'] == 'aye'
    assert output2['user']['name_first'] == 'two'
    assert output2['user']['name_last'] == 'bee'
    assert output3['user']['name_first'] == 'three'
    assert output3['user']['name_last'] == 'cee'
    user_profile_setname_v2(result1['token'], 'hello', 'world')
    user_profile_setname_v2(result2['token'], 'jump', 'start')
    user_profile_setname_v2(result3['token'], 'take', 'onme')
    output1a = user_profile_v2(result1['token'], result1['auth_user_id'])
    output2a = user_profile_v2(result2['token'], result2['auth_user_id'])
    output3a = user_profile_v2(result3['token'], result3['auth_user_id'])

    assert output1a['user']['name_first'] == 'hello'
    assert output1a['user']['name_last'] == 'world'
    assert output2a['user']['name_first'] == 'jump'
    assert output2a['user']['name_last'] == 'start'
    assert output3a['user']['name_first'] == 'take'
    assert output3a['user']['name_last'] == 'onme'
    clear_v1()
def test_message_send_message_too_long():
    # InputError raised if message given is more than 1000 characters
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Tinker', 'Bell')
    channel = channels_create_v2(user['token'], 'Insert Title Here', True)
    with pytest.raises(InputError):
        message_send_v2(user['token'], channel['channel_id'], 'L'*1001)
Exemple #15
0
def test_order_of_exceptions():
    """ Tests that the function raises exceptions in the order as assumed. The order
        should be:
        1. AccessError from invalid token
        2. InputError from invalid channel id
        3. AccessError when any of the authorised user is not already part of
           the channel with channel_id
    """
    clear_v1()

    user_1 = auth_register_v2("*****@*****.**", "dfgsdgsdfgdf", "Dum",
                              "Doggo")
    user_2 = auth_register_v2("*****@*****.**", "password09123", "Dummy",
                            "Dog")
    channel = channels_create_v2(user_1['token'], "General", True)

    # Pass in invalid channel id, invalid auth id, auth_user who is not part 
    # of the channel. This should raise an access error.
    with pytest.raises(AccessError):
        channel_details_v2(user_2['token'] + 'bug', channel['channel_id'] + 5)

    # Pass in invalid channel id, valid auth id, auth_user who is not part 
    # of the channel. This should raise an input error.
    with pytest.raises(InputError):
        channel_details_v2(user_2['token'], channel['channel_id'] + 5)

    # Pass in valid channel id, valid auth id, auth_user who is not part 
    # of the channel. This should raise an access error.
    with pytest.raises(AccessError):
        channel_details_v2(user_2['token'], channel['channel_id'])

    clear_v1()
Exemple #16
0
def test_standup_start_v1():
    clear_v1()

    auth_user_1_data = auth_register_v2("*****@*****.**", "123456", "Andy", "Dandy")
    auth_user_1_token = auth_user_1_data["token"]
    auth_user_1_id = auth_user_1_data["auth_user_id"]
    auth_user_1_handle = user_profile_v2(auth_user_1_token, auth_user_1_id)["user"]["handle_str"]

    channel_id_1 = channels_create_v2(auth_user_1_token, "Andys channel", True)["channel_id"]

    message_id_1 = message_send_v2(auth_user_1_token, channel_id_1, "Hey Guys!")["message_id"]

    standup_start_v1(auth_user_1_token, channel_id_1, 3)
    standup_send_v1(auth_user_1_token, channel_id_1, "Hello")

    message_list = channel_messages_v2(auth_user_1_token, channel_id_1, 0)["messages"]
    assert len(message_list) == 1
    assert message_list[0]["message_id"] == message_id_1
    assert message_list[0]["message"] == "Hey Guys!"

    time.sleep(5)
 
    message_list_1 = channel_messages_v2(auth_user_1_token, channel_id_1, 0)["messages"]
    assert len(message_list_1) == 2
    assert message_list_1[0]["message_id"] == message_id_1 + 1
    assert message_list_1[0]["message"] == auth_user_1_handle + ": Hello"
    assert message_list_1[1]["message_id"] == message_id_1
    assert message_list_1[1]["message"] == "Hey Guys!"
Exemple #17
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 test_dm_remove_errors(create_dms):
    users = create_dms['users']
    dm_1 = create_dms['dms'][0]
    dm_2 = create_dms['dms'][1]
    dm_3 = create_dms['dms'][2]

    with pytest.raises(InputError):
        dm_remove_v1(users[0]['token'], 100)

    with pytest.raises(InputError):
        dm_remove_v1(users[1]['token'], 100)

    with pytest.raises(AccessError):
        dm_remove_v1(users[1]['token'], dm_1['dm_id'])

    with pytest.raises(AccessError):
        dm_remove_v1(users[3]['token'], dm_2['dm_id'])

    with pytest.raises(AccessError):
        dm_remove_v1(users[1]['token'], dm_3['dm_id'])

    #invalid token
    with pytest.raises(AccessError):
        dm_remove_v1("fwsef", dm_3['dm_id'])
    with pytest.raises(AccessError):
        dm_remove_v1("afgde", dm_3['dm_id'])
    with pytest.raises(AccessError):
        dm_remove_v1("435vsrf", dm_3['dm_id'])

    clear_v1()
def test_dm_leave(create_dms):
    users = create_dms['users']
    dm_1 = create_dms['dms'][0]
    dm_2 = create_dms['dms'][1]
    dm_3 = create_dms['dms'][2]

    dm_details_v1(users[0]['token'], dm_1['dm_id'])
    dm_leave_v1(users[2]['token'], dm_1['dm_id'])
    dm_leave_v1(users[0]['token'], dm_1['dm_id'])
    dm_leave_v1(users[1]['token'], dm_1['dm_id'])
    

    dm_details_v1(users[1]['token'], dm_2['dm_id'])
    dm_leave_v1(users[1]['token'], dm_2['dm_id'])




    dm_details_v1(users[3]['token'], dm_3['dm_id'])
    dm_leave_v1(users[3]['token'], dm_3['dm_id'])
    dm_leave_v1(users[0]['token'], dm_3['dm_id'])
    dm_leave_v1(users[2]['token'], dm_3['dm_id'])
    dm_leave_v1(users[1]['token'], dm_3['dm_id'])

    with pytest.raises(InputError):
        dm_details_v1(users[0]['token'], dm_1['dm_id'])
    
    with pytest.raises(InputError):
        dm_details_v1(users[3]['token'], dm_3['dm_id'])

    with pytest.raises(InputError):
        dm_details_v1(users[1]['token'], dm_2['dm_id'])
    
    clear_v1()
Exemple #20
0
def test_dm_invite_errors(create_dms):
    users = create_dms['users']
    dm_1 = create_dms['dms'][0]
    dm_2 = create_dms['dms'][1]
    #dm_3 = create_dms['dms'][2]

    #wrong dm id
    with pytest.raises(InputError):
        dm_invite_v1(users[0]['token'], 100, users[0]['auth_user_id'])

    with pytest.raises(InputError):
        dm_invite_v1(users[1]['token'], 100, users[0]['auth_user_id'])

    #wrong u_id
    with pytest.raises(InputError):
        dm_invite_v1(users[0]['token'], dm_1['dm_id'], 100)

    with pytest.raises(InputError):
        dm_invite_v1(users[1]['token'], dm_2['dm_id'], 432)

    #authetication error
    with pytest.raises(AccessError):
        dm_invite_v1(users[3]['token'], dm_1['dm_id'],
                     users[3]['auth_user_id'])

    #authetication error
    with pytest.raises(AccessError):
        dm_invite_v1(users[3]['token'], dm_2['dm_id'],
                     users[3]['auth_user_id'])

    #invalid token
    with pytest.raises(AccessError):
        dm_invite_v1("fef", dm_2['dm_id'], users[2]['auth_user_id'])

    clear_v1()
Exemple #21
0
def test_channel_join_stat():
    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_join_v2(result2['token'], channel1['channel_id'])

    output = user_stats(result1['token'])
    output1 = user_stats(result2['token'])
    dreams = users_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'] == 0
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output['user_stats']['involvement_rate'] == 1

    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'] == 0
    assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output1['user_stats']['involvement_rate'] == 1

    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 1
    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'] == 2/2 
def test_dm_messages_v1_more_50():
    clear_v1()

    auth_user_1_data = auth_register_v2("*****@*****.**", "123456", "Andy", "Dandy")
    auth_user_1_token = auth_user_1_data["token"]
    auth_user_1_id = auth_user_1_data["auth_user_id"]

    auth_user_2_data = auth_register_v2("*****@*****.**", "123456", "Bob", "Hobs")
    auth_user_2_id = auth_user_2_data["auth_user_id"]

    auth_user_3_data = auth_register_v2("*****@*****.**", "123456", "Chris", "Wiz")
    auth_user_3_id = auth_user_3_data["auth_user_id"]

    dm_data_1 = dm_create_v1(auth_user_1_token, [auth_user_2_id, auth_user_3_id])
    dm_id_1 = dm_data_1["dm_id"]

    latest_msg = None

    for num in range(99):
        latest_msg = message_senddm_v1(auth_user_1_token, dm_id_1, "Test")

    dm_messages_data = dm_messages_v1(auth_user_1_token, dm_id_1, 0)
    for num in range(50):
        assert dm_messages_data["messages"][num]["u_id"] == auth_user_1_id
        assert dm_messages_data["messages"][num]["message"] == "Test"

    assert dm_messages_data["messages"][0]["message_id"] == latest_msg["message_id"]
    assert len(dm_messages_data["messages"]) == 50
    assert dm_messages_data["start"] == 0
    assert dm_messages_data["end"] == 50
Exemple #23
0
def test_data():
    clear_v1()
    a_data = auth_register_v2('*****@*****.**', '123456', 'Andy', 'Anderson')
    b_data = auth_register_v2('*****@*****.**', '123456', 'Bob', 'Bobinson')
    c_data = auth_register_v2('*****@*****.**', '123456', 'Chris', 'Con')

    return a_data, b_data, c_data
def test_dm_messages_v1_less_50():
    clear_v1()

    auth_user_1_data = auth_register_v2("*****@*****.**", "123456", "Andy", "Dandy")
    auth_user_1_token = auth_user_1_data["token"]
    auth_user_1_id = auth_user_1_data["auth_user_id"]

    auth_user_2_data = auth_register_v2("*****@*****.**", "123456", "Bob", "Hobs")
    auth_user_2_token = auth_user_2_data["token"]
    auth_user_2_id = auth_user_2_data["auth_user_id"]

    auth_user_3_data = auth_register_v2("*****@*****.**", "123456", "Chris", "Wiz")
    auth_user_3_id = auth_user_3_data["auth_user_id"]

    dm_data_1 = dm_create_v1(auth_user_1_token, [auth_user_2_id, auth_user_3_id])
    dm_id_1 = dm_data_1["dm_id"]

    message_id_1 = message_senddm_v1(auth_user_1_token, dm_id_1, "Hello")["message_id"]
    message_id_2 = message_senddm_v1(auth_user_2_token, dm_id_1, "World")["message_id"]

    dm_messages_data = dm_messages_v1(auth_user_1_token, dm_id_1, 0)

    assert dm_messages_data["messages"][0]["message_id"] == message_id_2
    assert dm_messages_data["messages"][0]["u_id"] == auth_user_2_id
    assert dm_messages_data["messages"][0]["message"] == "World"
    assert dm_messages_data["messages"][1]["message_id"] == message_id_1
    assert dm_messages_data["messages"][1]["u_id"] == auth_user_1_id
    assert dm_messages_data["messages"][1]["message"] == "Hello"
    assert dm_messages_data["end"] == -1
def test_email_not_belong():
    '''
    Email entered does not belong to a user
    '''
    clear_v1()
    with pytest.raises(InputError):
        auth_login_v2('*****@*****.**', 'asdjf~!')
def register_users():
    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')
    return [user1, user2, user3, user4]
Exemple #27
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_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()
Exemple #29
0
def test_multiple_messages_same_channel():
    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!')
    msg2 = message_send_v2(user_1['token'], channel_1['channel_id'], 'I')
    msg3 = message_send_v2(user_1['token'], channel_1['channel_id'], 'Love')
    msg4 = message_send_v2(user_1['token'], channel_1['channel_id'], 'COMP')
    assert type(msg1) == dict
    assert type(msg1['message_id']) == int
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "COMP"
    assert type(msg2) == dict
    assert type(msg2['message_id']) == int
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               1)['messages'][0]['message'] == "Love"
    assert type(msg3) == dict
    assert type(msg3['message_id']) == int
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               2)['messages'][0]['message'] == "I"
    assert type(msg4) == dict
    assert type(msg4['message_id']) == int
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               3)['messages'][0]['message'] == "Hello World!"
    assert msg1['message_id'] != msg2['message_id']
    assert msg1 != msg3
    assert msg1 != msg4
    assert msg2 != msg3
    assert msg2 != msg4
    assert msg3 != msg4
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 4
def test_message_send_invalid_token():
    # Test if AccessError is raised when given invalid token
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'password1234', 'Harry', 'Lurr')
    channel = channels_create_v2(user['token'], 'HARRYS CHANNEL', True)
    with pytest.raises(AccessError):
        message_send_v2(-2382732, channel['channel_id'], 'Poopoo')