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()
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
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 public_channel_2(user_2): return channels.channels_create(user_2['token'], 'Group 2', True)
def public_channel_3(user_3): return channels.channels_create(user_3['token'], 'Group 3', True)
def public_channel_4(user_4): return channels.channels_create(user_4['token'], 'Group 4', True)
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()
def public_channel_1(user_1): return channels.channels_create(user_1['token'], 'Group 1', True)