def test_channels_create_private(user_1, user_2, private_channel_1):
    """Test for a private channel. (test_user created the new_channel and is therefore
    already a part of it).
    """
    with pytest.raises(AccessError):
        channel.channel_join(user_2['token'], private_channel_1['channel_id'])
    clear()
def test_output_admin_owner_change_to_member(user_1, user_2, private_channel_1):
    """Test whether the an owner can set themselves as an member
    """
    admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER)
    admin_userpermission_change(user_2["token"], user_2["u_id"], MEMBER)
    with pytest.raises(AccessError):
        channel.channel_join(user_2['token'], private_channel_1['channel_id'])
    clear()
def test_output_admin_owner_change_first_owner_to_owner(user_1, user_2, public_channel_1):
    """Test whether another flockr owner successfully change another the first
    flockr owner to an owner (essentially does nothing as permission has not changed)
    """
    admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER)
    admin_userpermission_change(user_2["token"], user_1["u_id"], OWNER)
    channel.channel_join(user_2['token'], public_channel_1['channel_id'])
    clear()
def test_output_admin_member_change_to_member(user_1, user_2, private_channel_1):
    """Test whether a member is changed to a member, the function will do nothing.
    """
    with pytest.raises(AccessError):
        channel.channel_join(user_2['token'], private_channel_1['channel_id'])
    admin_userpermission_change(user_1["token"], user_2["u_id"], MEMBER)
    with pytest.raises(AccessError):
        channel.channel_join(user_2['token'], private_channel_1['channel_id'])
    clear()
def test_output_admin_owner_change_to_owner(user_1, user_2, public_channel_1):
    """Test whether an owner is changed to an owner, the function will do nothing.
    """
    admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER)
    channel.channel_join(user_2['token'], public_channel_1['channel_id'])
    channel.channel_leave(user_2['token'], public_channel_1['channel_id'])
    admin_userpermission_change(user_2["token"], user_2["u_id"], OWNER)
    channel.channel_join(user_2['token'], public_channel_1['channel_id'])
    clear()
def test_output_admin_owner_change_member_to_owner(user_1, user_2):
    """Test whether a member has become a flockr owner by joining a private channel
    """
    admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER)
    channel_info = channels.channels_create(user_1['token'], "Group 1", False)
    # Owner can join any channels including private
    # Testing user, with now as flockr owner to join private channel
    channel.channel_join(user_2['token'], channel_info['channel_id'])
    clear()
def test_output_admin_owner_change_owner_to_member_logout(user_1, user_2, private_channel_1):
    """Test whether permission change carry through after logout
    """
    admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER)
    admin_userpermission_change(user_1["token"], user_2["u_id"], MEMBER)
    auth.auth_logout(user_2['token'])
    user_2 = auth.auth_login('*****@*****.**', 'password')
    with pytest.raises(AccessError):
        channel.channel_join(user_2['token'], private_channel_1['channel_id'])
    clear()
def test_output_admin_owner_change_member_to_owner_logout(user_1, user_2, public_channel_1):
    """Testing whether the permission change carry through after user logout and
    logs back in.
    """
    admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER)
    auth.auth_logout(user_2["token"])
    user_2 = auth.auth_login('*****@*****.**', 'password')
    # Owner can join any channels including private
    # Testing user, with now as flockr owner to join private channel
    channel.channel_join(user_2['token'], public_channel_1['channel_id'])
    clear()
def test_flock_owner():
    """
    making sure the first user registered is a flockr owner
    """
    clear()
    result1 = auth.auth_register('*****@*****.**', 'abcdef', 'Chris',
                                 'Ilag')
    result2 = auth.auth_register('*****@*****.**', 'abcdef', 'Bob',
                                 'Smith')
    channel_data = channels.channels_create(result2['token'], 'blah', False)
    # Testing if flockr owner can join private channel
    channel.channel_join(result1['token'], channel_data['channel_id'])
    channel2_data = channels.channels_create(result1['token'], 'blah2', False)
    # user 2 should not have flockr ownership
    with pytest.raises(AccessError):
        channel.channel_join(result2['token'], channel2_data['channel_id'])
    clear()
예제 #10
0
def test_change_channel_data(user_1, user_2):
    """ Testing that name is updated in channels section in data structure.
    """
    # creating a new channel
    new_channel = channels.channels_create(user_1['token'], 'Group 1', True)
    channel.channel_invite(user_1['token'], new_channel['channel_id'],
                           user_2['u_id'])
    channel.channel_join(user_2['token'], new_channel['channel_id'])
    channel.channel_addowner(user_1['token'], new_channel['channel_id'],
                             user_2['u_id'])
    details = channel.channel_details(user_1['token'],
                                      new_channel['channel_id'])
    for member in details['all_members']:
        if member['u_id'] == user_1['u_id']:
            assert member['name_first'] == 'John'
            assert member['name_last'] == 'Smith'
        if member['u_id'] == user_2['u_id']:
            assert member['name_first'] == 'Jane'
            assert member['name_last'] == 'Smith'

    for owner in details['owner_members']:
        if owner['u_id'] == user_1['u_id']:
            assert owner['name_first'] == 'John'
            assert owner['name_last'] == 'Smith'
        if owner['u_id'] == user_2['u_id']:
            assert owner['name_first'] == 'Jane'
            assert owner['name_last'] == 'Smith'

    user.user_profile_setname(user_2['token'], 'Bobby', 'Wills')
    details = channel.channel_details(user_1['token'],
                                      new_channel['channel_id'])
    for member in details['all_members']:
        if member['u_id'] == user_2['u_id']:
            assert member['name_first'] == 'Bobby'
            assert member['name_last'] == 'Wills'

    for owner in details['owner_members']:
        if owner['u_id'] == user_2['u_id']:
            assert owner['name_first'] == 'Bobby'
            assert owner['name_last'] == 'Wills'
    clear()
def test_search_standard(user_1, user_2, user_3, user_4, public_channel_1, public_channel_2, public_channel_3, public_channel_4):
    """Test searching messages in multiple channels
    """
    message_str_1 = "Welcome to group 1!"
    message_str_2 = "Welcome to group 2!"
    message_str_3 = "Welcome to group 3!"
    message_str_4 = "Welcome to group 4!"
    message_str_5 = "Hiya guys!"
    message_str_6 = "sup"
    message_str_7 = "Let's get down to business!"
    query_str = "Welcome"
    channel.channel_join(user_1['token'], public_channel_2['channel_id'])
    channel.channel_join(user_1['token'], public_channel_3['channel_id'])
    channel.channel_join(user_1['token'], public_channel_4['channel_id'])
    message.message_send(user_1['token'], public_channel_1['channel_id'], message_str_1)
    message.message_send(user_2['token'], public_channel_2['channel_id'], message_str_2)
    message.message_send(user_3['token'], public_channel_3['channel_id'], message_str_3)
    message.message_send(user_4['token'], public_channel_4['channel_id'], message_str_4)
    message.message_send(user_1['token'], public_channel_1['channel_id'], message_str_5)
    message.message_send(user_1['token'], public_channel_2['channel_id'], message_str_6)
    message.message_send(user_1['token'], public_channel_2['channel_id'], message_str_7)
    msg_list = search(user_1['token'], query_str)
    msg_count = 0
    msg_cmp_2 = []
    for msg in msg_list['messages']:
        msg_cmp_2.append(msg['message'])
        msg_count += 1
    assert msg_count == 4
    msg_cmp_1 = [message_str_1, message_str_2, message_str_3, message_str_4]
    msg_cmp_1.sort()
    msg_cmp_2.sort()
    assert msg_cmp_1 == msg_cmp_2
    clear()
예제 #12
0
def route_channel_join():
    """Given a channel_id of a channel that the authorised user can join, adds
    them to that channel

    Args:
        token (string)
        channel_id (int)

    Returns:
        (dict): {}
    """
    payload = request.get_json()
    channel_id = int(payload['channel_id'])
    try:
        return dumps(channel.channel_join(payload['token'], channel_id))
    except (InputError, AccessError) as e:
        return e