def create_valid_user_data():
    """ Creates and returns a set of valid 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')
    users = [user1, user2, user3, user4]

    # Create 3 channels with owners user1, user2 & user3 respectively
    channel_1 = channels_create_v2(user1['token'], "General", True)
    channel_2 = channels_create_v2(user2['token'], "Music", True)
    channel_3 = channels_create_v2(user3['token'], "Study", True)

    # User2, user3 all join channel1
    channel_join_v2(user2['token'], channel_1['channel_id'])
    channel_join_v2(user3['token'], channel_1['channel_id'])

    # User4 join channel2
    channel_join_v2(user4['token'], channel_2['channel_id'])

    # User1 join channel3
    channel_join_v2(user1['token'], channel_3['channel_id'])

    channels = [channel_1, channel_2, channel_3]

    return {'users': users, 'channels': channels}
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
示例#3
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



    return {'users': users,
            'dms': [dm_1, dm_2, dm_3]}
def test_data():
    """
    channel a
        owners
            a
        members
            a, b

    channel c
        owners 
            c
        members
            c
    """
    clear_v1()
    global_owner = auth_register_v2('*****@*****.**', '123456', 'Global',
                                    'Owner')
    a_data = auth_register_v2('*****@*****.**', '123456', 'Andy', 'Anderson')
    b_data = auth_register_v2('*****@*****.**', '123456', 'Bob', 'Bobinson')
    c_data = auth_register_v2('*****@*****.**', '123456', 'Chris', 'Con')

    # Channel that only 'a' and 'b' are in
    a_ch_id = channels_create_v2(a_data["token"], 'A\'s Public',
                                 True)['channel_id']
    # b to join channel a
    channel_join_v2(b_data["token"], a_ch_id)
    c_ch_id = channels_create_v2(c_data["token"], 'C\'s Public',
                                 True)['channel_id']

    return global_owner, a_data, b_data, c_data, a_ch_id, c_ch_id
def test_invalid_password_length():
    '''
    Password entered is less than 6 characters long
    '''
    clear_v1()
    with pytest.raises(InputError):
        auth_register_v2('*****@*****.**', 'abc12', 'Rengoku',
                         'Kyojuro')
def test_email_invalid():
    '''
    Email entered is not a valid email
    '''
    clear_v1()
    with pytest.raises(InputError):
        auth_register_v2('0914rengoku.gmail.com', 'asdjf~!', 'Rengoku',
                         'Kyojuro')
示例#7
0
def test_invalid_email_register():
    clear_v1()
    with pytest.raises(InputError):
        auth_register_v2('invalidemailgmail.com', '123abc!@#', 'Comp',
                         'Student')
        auth_register_v2('invalid#[email protected]', '123abc!@#', 'Comp',
                         'Student')
    clear_v1()
示例#8
0
def test_message_senddm_invalid_dm_id():
    # InputError if dm_id given is invalid
    clear_v1()
    DM_owner = auth_register_v2('*****@*****.**', 'password123', 'Jordy', 'Eli')
    user_receiver = auth_register_v2('*****@*****.**', 'password123', 'John', 'Lam')
    dm_create_v1(DM_owner['token'], [user_receiver['auth_user_id']])
    with pytest.raises(InputError):
        message_senddm_v1(DM_owner['token'], -1, 'sup')
def test_data():
    clear_v1()
    global_owner = auth_register_v2('*****@*****.**', "12345678", "Global", "Owner")
    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 global_owner, a_data, b_data, c_data
示例#10
0
def test_auth_passwordreset_reset_invalid_password_less_than_6_characters():
    clear_v2()
    auth_register_v2("*****@*****.**", "iteration3", "cameron", "burrell")
    email = "*****@*****.**"
    auth_passwordreset_request_v1(email)
    test_reset_code = "test"
    with pytest.raises(InputError):
        auth_passwordreset_reset_v1(test_reset_code, "hdwd")
示例#11
0
def test_invalid_token():
    clear_v1()    
    result1 = 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)
    with pytest.raises(AccessError):
        user_stats('abcdef')
def test_incorrect_password():
    '''
    Password is not correct
    '''
    clear_v1()
    auth_register_v2('*****@*****.**', 'asdjf~!', 'Rengoku', 'Kyojuro')
    with pytest.raises(InputError):
        auth_login_v2('*****@*****.**', 'wakanda123')
示例#13
0
def test_message_senddm_msg_too_long():
    # InputError when message is more than 1000 characters
    clear_v1()
    DM_owner = auth_register_v2('*****@*****.**', 'password123', 'Roger', 'Rogerson')
    user_receiver = auth_register_v2('*****@*****.**', 'password123', 'Billy', 'Batson')
    DM = dm_create_v1(DM_owner['token'], [user_receiver['auth_user_id']])
    with pytest.raises(InputError):
        message_senddm_v1(DM_owner['token'], DM['dm_id'], "E"*1001)
示例#14
0
def test_multiple_owner():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'OKOKOK12', 'Polo', 'G')
    user_2 = auth_register_v2('*****@*****.**', 'OKOKOK12', 'Polo', 'G')

    userpermission_change_v1(user_1["token"], user_2["auth_user_id"], 1)

    user_remove_v1(user_2["token"], user_1["auth_user_id"])
示例#15
0
def test_invalid_token():
    clear_v1()
    auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    with pytest.raises(AccessError):
        user_profile_uploadphoto_v1(
            'abcdef',
            'https://media.vanityfair.com/photos/5a9069131d14714f6de43ff5/7:3/w_1995,h_855,c_limit/tout-and-lede_Lisa-Simpson.jpg',
            0, 0, 200, 200)
示例#16
0
def test_message_senddm_invalid_token():
    # AccessError should arise if passing invalid token
    clear_v1()
    DM_owner = auth_register_v2('*****@*****.**', 'password123', 'Jerry', 'Tin')
    user_receiver = auth_register_v2('*****@*****.**', 'password123', 'Shelly', 'Tin')
    DM = dm_create_v1(DM_owner['token'], [user_receiver['auth_user_id']])
    with pytest.raises(AccessError):
        message_senddm_v1(-1, DM['dm_id'], 'yo what up')
示例#17
0
def test_auth_login_v2_incorrect_password(user_details):
    clear_v2()
    email, pwd, fName, lName = user_details
    auth_register_v2(email, pwd, fName, lName)
    password = "******"

    with pytest.raises(InputError):
        auth_login_v2(email, password)
示例#18
0
def test_assorted_notifications():
    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_invite_v2(user1['token'], channel1['channel_id'],
                      user2['auth_user_id'])
    msg1str = "Welcome to the channel @joshhatton"
    msg1 = message_send_v2(user1['token'], channel1['channel_id'], msg1str)
    message_react_v1(user2['token'], msg1['message_id'], 1)
    msg2str = "Thanks for having me @ericzheng"
    msg2 = message_send_v2(user2['token'], channel1['channel_id'], msg2str)
    message_react_v1(user1['token'], msg2['message_id'], 1)

    assert notifications_get_v1(user1['token']) == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"joshhatton tagged you in Channel 1: {msg2str[0:20]}"
        }, {
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "joshhatton reacted to your message in Channel 1"
        }]
    }
    assert notifications_get_v1(user2['token']) == {
        'notifications': [
            {
                'channel_id':
                channel1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                "ericzheng reacted to your message in Channel 1"
            },
            {
                'channel_id':
                channel1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"ericzheng tagged you in Channel 1: {msg1str[0:20]}"
            },
            {
                'channel_id': channel1['channel_id'],
                'dm_id': -1,
                'notification_message': "ericzheng added you to Channel 1"
            },
        ]
    }
示例#19
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'
示例#20
0
def test_invalid_u_id():
    '''
    InputError when u_id does not refer to a valid user
    '''
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'OKOKOK12', 'Polo', 'G')
    auth_register_v2('*****@*****.**', 'boogie123', 'Luffy', 'Monkey')
    with pytest.raises(InputError):
        user_remove_v1(user_1['token'], 123)
示例#21
0
def test_auth_login_v2_no_user(user_details):
    clear_v2()
    email, pwd, fName, lName = user_details
    auth_register_v2(email, pwd, fName, lName)
    unused_email = "*****@*****.**"
    unused_password = "******"

    with pytest.raises(InputError):
        auth_login_v2(unused_email, unused_password)
示例#22
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)
示例#23
0
def test_message_senddm_user_not_in_dm_group():
    # AccessError should arise if user is not a member of the DM group
    clear_v1()
    DM_owner = auth_register_v2('*****@*****.**', 'password123', 'Sheldon', 'Andie')
    user_receiver = auth_register_v2('*****@*****.**', 'password123', 'Roger', 'Allie')
    user_random = auth_register_v2('*****@*****.**', 'password123', 'Billy', 'Bobby')
    DM = dm_create_v1(DM_owner['token'], [user_receiver['auth_user_id']])
    with pytest.raises(AccessError):
        message_senddm_v1(user_random['token'], DM['dm_id'], 'can i join plz')
def test_invalid_reset_code():
    '''
    reset_code is not a valid reset code
    '''
    clear_v1()
    auth_register_v2('*****@*****.**', 'asdjf~!', 'Rengoku', 'Kyojuro')
    auth_passwordreset_request_v1('*****@*****.**')
    with pytest.raises(InputError):
        auth_passwordreset_reset_v1('11111111', 'babus1337')
示例#25
0
def test_not_in_channel():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    user_2 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_2 = channels_create_v2(user_1['token'], 'Channel 2', True)
    with pytest.raises(AccessError):
        message_send_v2(user_1['token'], channel_2['channel_id'], 'Hey!')
        message_send_v2(user_2['token'], channel_1['channel_id'], 'Imposter')
def test_message_send_user_not_in_channel():
    # Test if AccessError is raised when user tries to leave 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)
    with pytest.raises(AccessError):
        message_send_v2(user['token'], channel['channel_id'], 'can i join pls')
示例#27
0
def test_multiple_errors():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    user_2 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_2 = channels_create_v2(user_1['token'], 'Channel 2', True)
    with pytest.raises(InputError):
        message_send_v2(user_1['token'], channel_2['channel_id'], 'a' * 1001)
        message_send_v2(user_2['token'], channel_1['channel_id'], 'b' * 1001)
示例#28
0
def test_auth_login_v2_invalid_email(user_details):
    clear_v2()
    email, pwd, fName, lName = user_details
    auth_register_v2(email, pwd, fName, lName)
    invalid_email = "ankitrai326.com"
    test_password = "******"

    with pytest.raises(InputError):
        auth_login_v2(invalid_email, test_password)
示例#29
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')
示例#30
0
def test_handle_with_name_over_20_characters_and_trailing_int():
    clear_v1()
    auth_register_v2('*****@*****.**', 'random', 'Jordan',
                     'Milchabcdefghijk')
    user_2 = auth_register_v2('*****@*****.**', 'random', 'Jordan',
                              'Milchabcdefghijk')
    output = user_profile_v2(user_2['token'], user_2['auth_user_id'])
    assert output['user']['handle_str'] == 'jordanmilchabcdefgh0'
    clear_v1()