示例#1
0
def test_channels_list_under_channel_join():
    '''User 1 make 2 channels, User 2 joins them and channel list updates'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']

    #Creates Channel One under User One's token which adds user to channel
    channel_id = channels_create(token, "Channel One", True)
    user_one_channel_list = channels_list(token)
    assert len(user_one_channel_list['channels']) == 1

    #Creates Channel Two under User One's token which adds user to channel
    channel_two_id = channels_create(token, "Channel Two", True)
    user_one_channel_list = channels_list(token)
    assert len(user_one_channel_list['channels']) == 2

    #Register User Two
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo')
    token_two = data_two['token']

    #Assert that User Two's channel_list is empty
    user_two_channel_list = channels_list(token_two)
    assert bool(user_two_channel_list['channels']) is False

    #User Two joins Channel One and channel list is updated
    channel_join(token_two, channel_id['channel_id'])
    user_two_channel_list = channels_list(token_two)
    assert len(user_two_channel_list['channels']) == 1

    #User Two joins Channel Two and channel list is updated
    channel_join(token_two, channel_two_id['channel_id'])
    user_two_channel_list = channels_list(token_two)
    assert len(user_two_channel_list['channels']) == 2
示例#2
0
def test_channels_create_long_name():
    '''Cannot create channel if name is more than 20 characters'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    with pytest.raises(InputError):
        channels_create(token, "Yena's Army of Ducks Fan Club", True)
示例#3
0
def test_details_invalid_channel_id():
    '''Function won't work if channel id is invalid'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channels_create(token, 'Channel One', True)
    with pytest.raises(InputError):
        channel_details(token, 2)
示例#4
0
def test_channels_create_two_channels_same_name():
    '''Create two channels with same name and public value'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, "UNSW Channel", True)
    assert channel_id['channel_id'] == 1
    channel_two_id = channels_create(token, "UNSW Channel", True)
    assert channel_two_id['channel_id'] == 2
示例#5
0
def test_channels_create_two_channels():
    '''Create two channels to compare their channel ids too'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, "Channel One", True)
    assert channel_id['channel_id'] == 1
    channel_two_id = channels_create(token, "Channel Two", False)
    assert channel_two_id['channel_id'] == 2
示例#6
0
def test_channels_list_one_channel():
    '''Returns a list of 1 channel that the authorised user is part of'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']

    #Creates Channel One under User One's token which adds user to channel
    channels_create(token, "Channel One", True)
    user_one_channel_list = channels_list(token)
    assert len(user_one_channel_list['channels']) == 1
示例#7
0
def test_channel_invite_invalid_user_id():
    '''New user can't be invited with invalid user id'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    new_user_id = data_two['u_id']
    with pytest.raises(InputError):
        channel_invite(token, 2, new_user_id - 1)
示例#8
0
def test_channels_listall():
    '''Creates 1 channel under User One's token and list 1 channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']

    #Creates Channel One under User One's token which adds user to channel
    channels_create(token, "Channel One", True)
    channels_list = channels_listall(token)
    assert len(channels_list['channels']) == 1
示例#9
0
def test_message_send():
    '''Send a normal message such as 'Hello World'''
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'Hello World')
    assert isinstance(message_id['message_id'], int) is True
示例#10
0
def test_channels_listall_two_users():
    '''User One makes 1 channel, User One and Two checks channel list'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']

    #Creates Channel One under User One's token which adds user to channel
    channels_create(token, "Channel One", True)
    channels_list = channels_listall(token)
    assert len(channels_list['channels']) == 1

    #User Two is registered and accesses channel list
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yuri', 'Jo')
    token_two = data_two['token']
    channels_list = channels_listall(token_two)
    assert len(channels_list['channels']) == 1
示例#11
0
def test_message_react():
    '''Message will be reacted on the chat'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'Hello World')
    assert message_react(token, message_id['message_id'], 1) == {}
示例#12
0
def test_message_send_long_string():
    '''Can't send message with more than 1000 characters'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    with pytest.raises(InputError):
        message_send(token, channel_id['channel_id'], 'he' * 1000)
示例#13
0
def test_message_remove():
    '''This function will remove a message'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'Hello World')
    assert message_remove(token, message_id['message_id']) == {}
示例#14
0
def test_channels_create_empty_is_public_value():
    '''If the is_public value is empty, it creates the private channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    assert bool('') is False
    channel_id = channels_create(token, "Channel One", '')
    assert channel_id['channel_id'] == 1
示例#15
0
def test_message_edit_empty():
    '''If the message is edited into an empty string, it'll be deleted'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'UNSW < USYD')
    assert message_edit(token, message_id['message_id'], '') == {}
示例#16
0
def test_invalid_start_value():
    '''Channel messages will not work if start value is bigger than total messages'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_send(token, channel_id['channel_id'], 'hi')
    with pytest.raises(InputError):
        channel_messages(token, channel_id['channel_id'], 2)
示例#17
0
def test_channel_messages_invalid_channel_id():
    '''Channel messages will not run with invalid channel ID'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_send(token, channel_id['channel_id'], 'hi')
    with pytest.raises(InputError):
        channel_messages(token, 2, 0)
示例#18
0
def test_channel_invite():
    '''This channel will invite new user to channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    new_user_id = data_two['u_id']
    assert channel_invite(token, channel_id['channel_id'], new_user_id) == {}
示例#19
0
def get_user():
    data = auth_register('*****@*****.**', 'password', 'jiahao',
                         'zhang')
    token = data['token']
    channel_id = channels_create(token, 'New channel', True)
    return (
        token,
        channel_id,
    )
示例#20
0
def test_message_edit():
    '''This function will edit the message into a non-empty string'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'UNSW < USYD')
    message_edit(token, message_id['message_id'], 'UNSW > USYD')
    assert message_edit(token, message_id['message_id'], 'UNSW > USYD') == {}
示例#21
0
def test_channel_join():
    '''Function should allow authorised user to join channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    token_two = data_two['token']
    assert channel_join(token_two, channel_id['channel_id']) == {}
示例#22
0
def test_message_invalid_react_id_in_react():
    '''Message will be not reacted with invalid react id on the chat'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'Hello World')
    with pytest.raises(InputError):
        message_react(token, message_id['message_id'], 2)
示例#23
0
def test_remove_twice():
    '''Cannot remove a message twice'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'Hello World')
    message_remove(token, message_id['message_id'])
    with pytest.raises(InputError):
        message_remove(token, message_id['message_id'])
示例#24
0
def test_details_invalid_channel_member():
    '''Function won't work if authorised user is not member of channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    token_two = data_two['token']
    with pytest.raises(AccessError):
        channel_details(token_two, channel_id['channel_id'])
示例#25
0
def test_message_send_link():
    '''A URL link will be sent as a string instead of an actual link'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message = 'https://www.google.com/'
    assert isinstance(message, str) is True
    message_id = message_send(token, channel_id['channel_id'], 'https://www.google.com/')
    assert isinstance(message_id['message_id'], int) is True
示例#26
0
def test_channel_join_private_channel():
    '''Authorised user can't join private channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', False)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    token_two = data_two['token']
    with pytest.raises(AccessError):
        channel_join(token_two, channel_id['channel_id'])
示例#27
0
def test_channel_leave():
    '''Authorised user is given permission to leave channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    token_two = data_two['token']
    channel_join(token_two, channel_id['channel_id'])
    assert channel_leave(token_two, channel_id['channel_id']) == {}
示例#28
0
def test_message_invalid_pin():
    '''Pinned message will not be pinned again'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    message_id = message_send(token, channel_id['channel_id'], 'Hello World')
    message_pin(token, message_id['message_id'])
    with pytest.raises(InputError):
        message_pin(token, message_id['message_id'])
示例#29
0
def test_channel_leave_non_member():
    '''Authorised user can't use function if its not a channel member'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    token_two = data_two['token']
    with pytest.raises(AccessError):
        channel_leave(token_two, channel_id['channel_id'])
示例#30
0
def test_channel_addowner():
    '''Function should add new user as owner of channel'''
    reset_data()
    data = auth_register('*****@*****.**', 'cs1531', 'Kevin', 'Trang')
    token = data['token']
    channel_id = channels_create(token, 'Channel One', True)
    data_two = auth_register('*****@*****.**', 'cs1531', 'Yena', 'Choi')
    other_user_id = data_two['u_id']
    assert channel_addowner(token, channel_id['channel_id'],
                            other_user_id) == {}