Пример #1
0
def test_channels_listall_2_channels(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (channel1) (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' Creates a private channel (channel2) (Admin: user2) '''
    channelsCreate2 = channels_create(setup2['token'], "Private Channel",
                                      False)
    channelId2 = channelsCreate2['channel_id']

    assert channels_listall(setup1['token']) == {
        'channels': [{
            'channel_id': channelId1,
            'name': 'Public Channel',
        }, {
            'channel_id': channelId2,
            'name': 'Private Channel',
        }]
    }

    # Passing in token 2 will return same output

    assert channels_listall(setup2['token']) == {
        'channels': [{
            'channel_id': channelId1,
            'name': 'Public Channel',
        }, {
            'channel_id': channelId2,
            'name': 'Private Channel',
        }]
    }
Пример #2
0
def test_channel_addowner_success(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' User2 joins the channel '''
    channel_join(setup2['token'], channelId1)
    ''' Adds user2 as owner of "Public Channel" '''
    channel_addowner(setup1['token'], channelId1, setup2['u_id'])
    ''' If above line was succesful, will display user2 as an owner when calling channel_details '''
    details = channel_details(setup1['token'], channelId1)
    assert details['owner_members'] == [{
        'u_id':
        setup1['u_id'],
        'name_first':
        "Sojin",
        'name_last':
        "Nam",
        'profile_img_url':
        "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg/440px-An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg"
    }, {
        'u_id':
        setup2['u_id'],
        'name_first':
        "Fairuz",
        'name_last':
        "Alam",
        'profile_img_url':
        "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg/440px-An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg"
    }]
Пример #3
0
def reset_channels():
    data = getData()
    global channel_id
    data['channel'] = []
    for user in data['users']:
        user['joined_channels'] = []
    channel_id = 0
Пример #4
0
def test_channel_details_success(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']

    assert channel_details(setup1['token'], channelId1) == {
        'name':
        "Public Channel",
        'all_members': [{
            'u_id':
            setup1['u_id'],
            'name_first':
            'Sojin',
            'name_last':
            'Nam',
            'profile_img_url':
            "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg/440px-An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg"
        }],
        'owner_members': [{
            'u_id':
            setup1['u_id'],
            'name_first':
            'Sojin',
            'name_last':
            'Nam',
            'profile_img_url':
            "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg/440px-An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg"
        }]
    }
Пример #5
0
def test_channels_create_invalid_name_private(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' invalid name (> 20 characters) '''
    invalidName = "thisisaninvalidname!!!"
    ''' Error when invalid name entered '''
    with pytest.raises(ValueError_http, match=r".*"):
        channels_create(setup2['token'], invalidName, False)
Пример #6
0
def setup1():
    data = getData()
    global channel_id
    channel_id = 0
    ''' Registers user1 '''
    authRegDict1 = auth_register("*****@*****.**", "password123", "Sojin",
                                 "Nam")
    return authRegDict1
def check_last_owner(u_id):
    data = getData()
    foundOwner = 0
    foundUser = getUserById(u_id)
    for user in data['users']:
        if user['permission_id'] == 1:
            foundOwner += 1
    return foundOwner
Пример #8
0
def test_channel_addowner_not_a_member(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' Error when owner tries to make a non-member an owner '''
    with pytest.raises(ValueError_http, match=r".*"):
        channel_addowner(setup1['token'], channelId1, setup2['u_id'])
Пример #9
0
def test_channel_invite_no_user(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' Error when user does not exist'''
    with pytest.raises(ValueError_http, match=r".*"):
        channel_invite(setup1['token'], channelId1, 'wrong')
Пример #10
0
def test_channel_invite_unauthorized(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' Error when authorized user is not a member of channel'''
    with pytest.raises(AccessError, match=r".*"):
        channel_invite(setup2['token'], channelId1, setup3['u_id'])
Пример #11
0
def test_channel_removeowner_unauthorized_user(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' Error when not-an-owner tries to remove another user as an owner'''
    with pytest.raises(AccessError, match=r".*"):
        channel_removeowner(setup2['token'], channelId1, setup1['u_id'])
Пример #12
0
def channel_id1(request, reg1, reg2, reg3, reg4):
    data = getData()
    #user1 create a public channel
    channel_id_1 = channels_create(reg1['token'], 'channel1',
                                   True)['channel_id']
    #user2 joins the public channel
    channel_join(reg2['token'], channel_id_1)
    #user4 joins channel 1
    channel_join(reg4['token'], channel_id_1)
    return channel_id_1
Пример #13
0
def test_channel_leave_success_private(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a private channel (Admin: user1) '''
    channelsCreate2 = channels_create(setup1['token'], "Private Channel",
                                      False)
    channelId2 = channelsCreate2['channel_id']
    ''' Leave private channel'''
    channel_leave(setup1['token'], channelId2)
    ''' If above line was succesful, channel_list should return an empty list '''
    assert channels_list(setup1['token']) == {'channels': []}
Пример #14
0
def test_channel_leave_success_public(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    # Creates public channel (Admin: user1)
    channelsCreateDict1 = channels_create(setup1['token'], "Public Channel",
                                          True)
    channelId1 = channelsCreateDict1['channel_id']
    ''' Leave public channel '''
    channel_leave(setup1['token'], channelId1)
    ''' If above line was successful, channel_list should return an empty list '''
    assert channels_list(setup1['token']) == {'channels': []}
Пример #15
0
def test_channel_messages_unauthorized(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    # Creates public channel (Admin: user1)
    channelsCreateDict1 = channels_create(setup1['token'], "Public Channel",
                                          True)
    channelId1 = channelsCreateDict1['channel_id']

    # not a member of channel
    with pytest.raises(AccessError):
        channel_messages(setup2['token'], channelId1, 1)
Пример #16
0
def test_channel_invite_already_member(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']

    channel_invite(setup1['token'], channelId1, setup2['u_id'])
    ''' Error user trying to invite is already a member of channel'''
    with pytest.raises(ValueError_http, match=r".*"):
        channel_invite(setup1['token'], channelId1, setup2['u_id'])
Пример #17
0
def test_channel_removeowner_yourself(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' User1 removes attempts to remove themself as an owner '''
    ''' (Assumption) It is impossible to remove yourself as an owner (if you are the only owner) '''

    with pytest.raises(ValueError_http, match=r".*"):
        channel_removeowner(setup1['token'], channelId1, setup1['u_id'])
Пример #18
0
def test_channel_messages_no_channel(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    # Creates public channel (Admin: user1)
    channelsCreateDict1 = channels_create(setup1['token'], "Public Channel",
                                          True)
    channelId1 = channelsCreateDict1['channel_id']

    # channel doesnt exist
    with pytest.raises(ValueError_http):
        channel_messages(setup1['token'], -1, 10)
Пример #19
0
def user_profile_setemail(token, email):
    data = getData()
    #'''Email entered is not a valid email'''
    if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
        raise ValueError_http("Invalid email")
    # if getUserByEmail(email) != None:
    for user in data['users']:
        if user['email'] == email:
            raise ValueError_http(
                "Email address is already being used by another user")
    found_user = getUserFromToken(token)
    found_user['email'] = email
    return ({})
Пример #20
0
def test_channel_messages_no_message(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    # Creates public channel (Admin: user1)
    channelsCreateDict1 = channels_create(setup1['token'], "Public Channel",
                                          True)
    channelId1 = channelsCreateDict1['channel_id']

    assert channel_messages(setup1['token'], channelId1, 0) == {
        'messages': [],
        'start': 0,
        'end': 0
    }
Пример #21
0
def test_channel_messages_start_equal(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    # Creates public channel (Admin: user1)
    channelsCreateDict1 = channels_create(setup1['token'], "Public Channel",
                                          True)
    channelId1 = channelsCreateDict1['channel_id']

    message_send(setup1['token'], channelId1, 'sendmessage')

    # start is equal to total messages
    with pytest.raises(ValueError_http):
        channel_messages(setup1['token'], channelId1, 1)
Пример #22
0
def test_channel_addowner_already_owner(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' User2 joins the channel '''
    channel_join(setup2['token'], channelId1)
    ''' Adds user2 as owner of "Public Channel" '''
    channel_addowner(setup1['token'], channelId1, setup2['u_id'])
    ''' Error when trying to add owner that is already an owner '''
    with pytest.raises(ValueError_http, match=r".*"):
        channel_addowner(setup1['token'], channelId1, setup2['u_id'])
Пример #23
0
def test_channel_removeowner_no_channel(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' User2 joins the channel '''
    channel_join(setup2['token'], channelId1)
    ''' Adds user2 as owner of "Public Channel" '''
    channel_addowner(setup1['token'], channelId1, setup2['u_id'])
    ''' Error when channel does not exist '''
    with pytest.raises(ValueError_http, match=r".*"):
        channel_removeowner(setup1['token'], -1, setup2['u_id'])
Пример #24
0
def test_channel_invite_success(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']

    channel_invite(setup1['token'], channelId1, setup2['u_id'])

    assert channels_list(setup2['token']) == {
        'channels': [{
            'channel_id': channelId1,
            'name': 'Public Channel',
        }]
    }
Пример #25
0
def test_channel_join_success_admin(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']
    ''' Join public channel '''
    channel_join(tokenize('*****@*****.**'), channelId1)

    assert channels_list(setup1['token']) == {
        'channels': [{
            'channel_id': channelId1,
            'name': "Public Channel",
        }]
    }
Пример #26
0
def test_channels_create_success_private(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' valid name '''
    validName2 = "anothername"
    ''' Creating a private channel '''
    channelsCreate2 = channels_create(setup1['token'], validName2, False)
    channelId2 = channelsCreate2['channel_id']
    ''' If the above was successful, it will display the channel when calling channels_listall'''
    assert channels_listall(setup1['token']) == {
        'channels': [{
            'channel_id': channelId2,
            'name': validName2
        }]
    }
def search(token, query_str):
    data = getData()
    returnMessage = []
    u_id = getUidFromToken(token)
    # condition for query_str is an empty string
    if query_str == '':
        return []
    # search for messages with query_str and add to returnMessage
    for channels in data['channel']:
        if u_id in channels['all_members']:
            for msg in channels['messages']:
                if re.search(query_str.lower(), msg['message'].lower()):
                    returnMessage.append(msg)
    # print(returnMessage)
    return returnMessage
Пример #28
0
def test_channels_list_one_channel(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' Creates a public channel (channel1) (Admin: user1) '''
    channelsCreate1 = channels_create(setup1['token'], "Public Channel", True)
    channelId1 = channelsCreate1['channel_id']

    assert channels_list(setup1['token']) == {
        'channels': [{
            'channel_id': channelId1,
            'name': 'Public Channel',
        }]
    }

    # Passing in token 2 will return empty list
    assert channels_list(setup2['token']) == {'channels': []}
Пример #29
0
def test_channels_create_success_public(setup1, setup2, setup3):
    data = getData()
    reset_channels()
    ''' valid name '''
    validName1 = "validname"
    ''' Creating a public channel '''
    channelsCreate1 = channels_create(setup1['token'], validName1, True)
    channelId1 = channelsCreate1['channel_id']
    ''' Confirm that created channel is public by attempting to add unauthorized user '''
    channel_join(setup2['token'], channelId1)
    ''' If the above was successful, it will display the channel when calling channels_listall '''
    assert channels_listall(setup1['token']) == {
        'channels': [{
            'channel_id': channelId1,
            'name': validName1,
        }]
    }
Пример #30
0
def users_all(token):
    data = getData()
    foundUser = getUserFromToken(token)
    all_users = []
    for user in data['users']:
        user_dic = {
            'u_id': user['u_id'],
            'email': user['email'],
            'name_first': user['name_first'],
            'name_last': user['name_last'],
            'handle_str': user['handle_str'],
            'profile_img_url': user['profile_img_url']
        }
        all_users.append(user_dic)

    return {
        'users': all_users,
    }