def test_channels_listall(user_1, user_2):
    """Test list all channels.
    """
    # Create new channels.
    channel_1 = channels.channels_create(user_1['token'], 'Channel_1', True)
    channel_2 = channels.channels_create(user_1['token'], 'Channel_2', True)
    channel_3 = channels.channels_create(user_1['token'], 'Channel_3', True)
    channel_4 = channels.channels_create(user_2['token'], 'Channel_4', True)
    channel_5 = channels.channels_create(user_2['token'], 'Channel_5', True)

    assert channels.channels_listall(user_1['token']) == {
        'channels': [
            {
                'channel_id': channel_1['channel_id'],
                'name': 'Channel_1',
            },
            {
                'channel_id': channel_2['channel_id'],
                'name': 'Channel_2',
            },
            {
                'channel_id': channel_3['channel_id'],
                'name': 'Channel_3',
            },
            {
                'channel_id': channel_4['channel_id'],
                'name': 'Channel_4',
            },
            {
                'channel_id': channel_5['channel_id'],
                'name': 'Channel_5',
            },
        ]
    }
    clear()
def test_channels_create_21char(user_1):
    """Test for 21 character name.
    """
    with pytest.raises(InputError):
        channels.channels_create(user_1['token'], 'Channel_Name123456789',
                                 False)
    clear()
def test_channels_list(user_1, user_2):
    """Test for multiple created channels.
    """
    # Create new channels.
    channel_1 = channels.channels_create(user_1['token'], 'Channel_1', True)
    channel_2 = channels.channels_create(user_1['token'], 'Channel_2', True)
    channel_3 = channels.channels_create(user_1['token'], 'Channel_3', True)
    channels.channels_create(user_2['token'], 'Channel_4', True)

    assert channels.channels_list(user_1['token']) == {
        'channels': [
            {
                'channel_id': channel_1['channel_id'],
                'name': 'Channel_1',
            },
            {
                'channel_id': channel_2['channel_id'],
                'name': 'Channel_2',
            },
            {
                'channel_id': channel_3['channel_id'],
                'name': 'Channel_3',
            },
        ],
    }
    clear()
def test_channels_listall_private(user_1):
    """Test for private channels.
    """
    # Channel 1 and 3 are private channels.
    channel_1 = channels.channels_create(user_1['token'], 'Channel_1', False)
    channel_2 = channels.channels_create(user_1['token'], 'Channel_2', True)
    channel_3 = channels.channels_create(user_1['token'], 'Channel_3', False)
    channel_4 = channels.channels_create(user_1['token'], 'Channel_4', True)

    assert channels.channels_listall(user_1['token']) == {
        'channels': [
            {
                'channel_id': channel_1['channel_id'],
                'name': 'Channel_1',
            },
            {
                'channel_id': channel_2['channel_id'],
                'name': 'Channel_2',
            },
            {
                'channel_id': channel_3['channel_id'],
                'name': 'Channel_3',
            },
            {
                'channel_id': channel_4['channel_id'],
                'name': 'Channel_4',
            },
        ],
    }
    clear()
def test_access_leave_valid_token1(user_1, logout_user_1):
    """Testing if token is valid in the channels create function.
    """
    # Token should now be invalid.
    with pytest.raises(AccessError):
        channels.channels_create(user_1['token'], 'Group 1', False)
    clear()
def test_channels_invalid(user_1):
    """Testing for an invalid channel name (Invalid when name is outside the range of 0-20
    (inclusive) characters).
    """
    with pytest.raises(InputError):
        channels.channels_create(user_1['token'], 'Invalid_Channels_Name',
                                 True)
    clear()
def test_channels_create(user_1):
    """Test for a create channel (We create 2 channels and test whether the 2 channel id's
    are unique).
    """
    # Create 2 new channels.
    new_channel_1 = channels.channels_create(user_1['token'], 'Channel_1',
                                             True)
    new_channel_2 = channels.channels_create(user_1['token'], 'Channel_2',
                                             True)

    # Ensure that they are unique.
    assert new_channel_1['channel_id'] is not new_channel_2['channel_id']
    clear()
def test_logout_without_valid_token():
    """
    make sure token is required to log out.
    """
    clear()
    result = auth.auth_register('*****@*****.**', 'abcdefg', 'Christian',
                                'Ilagan')
    auth.auth_logout(result['token'])
    auth.auth_register('*****@*****.**', 'abcdefg', 'Bob',
                       'Build')
    logout = auth.auth_logout(result['token'])
    assert not logout['is_success']
    with pytest.raises(AccessError):
        channels.channels_create(result['token'], 'name', True)
    clear()
def test_channels_create_20char(user_1):
    """Test for 20 character name.
    """
    new_channel = channels.channels_create(user_1['token'],
                                           'Channel_Name12345678', False)

    assert 'channel_id' in new_channel
    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()
def test_create_unique_id(user_1):
    """Verify if channel id is unique (Since leaving a channel as the only member should
    destroy the channel).
    """
    # Create 3 channels.
    new_channel1 = channels.channels_create(user_1['token'], 'Channel_1', True)
    new_channel2 = channels.channels_create(user_1['token'], 'Channel_2', True)
    new_channel3 = channels.channels_create(user_1['token'], 'Channel_3', True)

    # Leave 2nd channel.
    channel.channel_leave(user_1['token'], new_channel2['channel_id'])

    # Create a new channel.
    new_channel4 = channels.channels_create(user_1['token'], 'Channel_4', True)

    assert new_channel1['channel_id'] != new_channel3['channel_id']
    assert new_channel3['channel_id'] != new_channel4['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_channels_leave(user_1):
    """Test for leaving joined channels and then listing joined channels.
    """
    # Create new channels.
    channel_1 = channels.channels_create(user_1['token'], 'Channel_1', True)
    channel_2 = channels.channels_create(user_1['token'], 'Channel_2', True)
    channel_3 = channels.channels_create(user_1['token'], 'Channel_3', True)

    # Leave the first channel.
    channel.channel_leave(user_1['token'], channel_1['channel_id'])

    assert channels.channels_list(user_1['token']) == {
        'channels': [
            {
                'channel_id': channel_2['channel_id'],
                'name': 'Channel_2',
            },
            {
                'channel_id': channel_3['channel_id'],
                'name': 'Channel_3',
            },
        ],
    }
    clear()
예제 #14
0
def route_channels_create():
    """Creates a new channel with that name that is either a public or private.

    Args:
        token (string)
        name (string)
        is_public (bool)

    Returns:
        (dict): { channel_id }
    """
    payload = request.get_json()
    is_public = bool(payload['is_public'])
    try:
        return dumps(
            channels.channels_create(payload['token'], payload['name'],
                                     is_public))
    except (InputError, AccessError) as e:
        return e
예제 #15
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()
예제 #16
0
def public_channel_2(user_2):
    return channels.channels_create(user_2['token'], 'Group 2', True)
예제 #17
0
def public_channel_3(user_3):
    return channels.channels_create(user_3['token'], 'Group 3', True)
예제 #18
0
def public_channel_4(user_4):
    return channels.channels_create(user_4['token'], 'Group 4', True)
예제 #19
0
def private_channel_2(user_2):
    return channels.channels_create(user_2['token'], 'Group 1', False)
def test_channels_create_0char(user_1):
    """Test for 0 character name.
    """
    with pytest.raises(InputError):
        channels.channels_create(user_1['token'], '', False)
    clear()
def test_channels_create_1char(user_1):
    """Test for 1 character name.
    """
    new_channel = channels.channels_create(user_1['token'], '1', False)
    assert 'channel_id' in new_channel
    clear()
예제 #22
0
def public_channel_1(user_1):
    return channels.channels_create(user_1['token'], 'Group 1', True)