def test_unpin(): 'testing functionability for message unpin' workspace_reset() ret = register_and_create() user = ret['user'] channel1 = ret['channel'] msg1 = send_msg1(user, channel1) message.pin({'token': user['token'], 'message_id': msg1['message_id']}) message.unpin({'token': user['token'], 'message_id': msg1['message_id']}) assert msg1['is_pinned'] is False
def test_already_pinned(): 'testing error case' #message is already pinned workspace_reset() ret = register_and_create() user = ret['user'] channel1 = ret['channel'] msg1 = send_msg1(user, channel1) message.pin({'token': user['token'], 'message_id': msg1['message_id']}) with pytest.raises(InputError): message.pin({'token': user['token'], 'message_id': msg1['message_id']})
def test_unauthor_member(): 'testing error case' workspace_reset() ret = register_and_create() user = ret['user'] channel1 = ret['channel'] user2 = reg_user2() msg1 = send_msg1(user, channel1) with pytest.raises(AccessError): message.pin({ 'token': user2['token'], 'message_id': msg1['message_id'], })
def test_channel_messages_start_excess(): 'Start >= total messages case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channelInfo = ret['channel'] channel_id = channelInfo['channel_id'] payload = {'token': token1, 'channel_id': channel_id, 'message': "hello"} # Send message message.send(payload) # InputError when start >= total messages, e.g. 50 >= 1 with pytest.raises(InputError) as e: channel.messages(token1, channel_id, 50)
def test_list(): 'testing functionability of channels list' workspace_reset() ret = register_and_create() user = ret['user'] token = user['token'] result1 = channels.List(token) expected = { 'channel_id' : 1, 'name': 'firstChannel' } assert expected in result1
def test_channel_leave_unauthorised(): 'User is not a member' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channel_info = ret['channel'] user2 = reg_user2() token2 = user2['token'] channel_id = channel_info['channel_id'] # AccessError when authorised user is not a member of channel they are # trying to leave from # user2 isn't a member with pytest.raises(AccessError) as e: channel.leave(token2, channel_id)
def test_admin_user_remove_successful2(): 'Successful case with channels' workspace_reset() channel_store = get_channel_data_store() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] u_id1 = user1['u_id'] user2 = reg_user2() token2 = user2['token'] u_id2 = user2['u_id'] channel_info = ret['channel'] channel_id = channel_info['channel_id'] channel.join(token2, channel_id) payload = {'token': token1, 'u_id': u_id2} # Remove user2 from slackr user_remove(payload) user2_dets = user_details(u_id2) for channel_lol in channel_store: channel_id = channel_lol['channel_id'] if user2_dets in channel_lol['members']: assert channel.details(token1, channel_id)['all_members'] == [{ "u_id": u_id1, "name_first": 'Kennan', "name_last": 'Wong' }] if user2_dets in channel_lol['owners']: assert channel.details(token1, channel_id)['owner_members'] == [{ "u_id": u_id1, "name_first": 'Kennan', "name_last": 'Wong' }]
def test_search_one_channel(): #create user workspace_reset() reg_cre = register_and_create() user = reg_cre['user'] chan = reg_cre['channel'] msg_test = send_msg1(user, chan) #test to see if search will return the messages that have helloworld query = "Testing" messages = search(token, query) #test to see if the query string used found messages in channels for i in messages['messages']: assert i['message'] == "Testing"
def test_not_owner(): 'Non-owner case' workspace_reset() ret = register_and_create() user1 = ret['user'] channel_info = ret['channel'] user2 = reg_user2() token2 = user2['token'] user3 = reg_user3() token3 = user3['token'] u_id3 = user3['u_id'] channel_id = channel_info['channel_id'] channel.join(token3, channel_id) # AccessError when non-owner tries to make user3 as owner with pytest.raises(AccessError): channel.addowner(token2, channel_id, u_id3)
def test_channel_messages_invalid_channel(): 'Invalid channel case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channelInfo = ret['channel'] channel_id = channelInfo['channel_id'] payload = {'token': token1, 'channel_id': channel_id, 'message': "hello"} # Send message message.send(payload) # InputError when we try to check messages in an invalid channel # Invalid channel_id = 100 with pytest.raises(InputError) as e: channel.messages(token1, 100, 0)
def test_unauth_remove2(): ''' Attempting remove another users message in a channel they are not a part of ''' workspace_reset() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] user2 = reg_user2() msg1 = send_msg1(user1, channel1) with pytest.raises(AccessError): message.remove({ 'token': user2['token'], 'message_id': msg1['message_id'] })
def test_channel_invite_existing_user(): 'Existing user case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channel_info = ret['channel'] user2 = reg_user2() u_id2 = user2['u_id'] channel_id = channel_info['channel_id'] # Invite user2 channel.invite(token1, channel_id, u_id2) # InputError when user tries to invite someone who is already a member of # the channel with pytest.raises(InputError) as e: channel.invite(token1, channel_id, u_id2)
def test_invalid_channel(): 'Invalid channel case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channel_info = ret['channel'] user2 = reg_user2() token2 = user2['token'] u_id2 = user2['u_id'] channel_id = channel_info['channel_id'] channel.join(token2, channel_id) # Invalid channel_id = 100 with pytest.raises(InputError): channel.addowner(token1, 100, u_id2)
def test_already_owner(): 'Already an owner case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channel_info = ret['channel'] user2 = reg_user2() token2 = user2['token'] u_id2 = user2['u_id'] channel_id = channel_info['channel_id'] channel.join(token2, channel_id) channel.addowner(token1, channel_id, u_id2) # InputError because user2 is already an owner with pytest.raises(InputError): channel.addowner(token1, channel_id, u_id2)
def test_unauth_edit2(): ''' Someone attempting to edit a message in a channel they are not a part of ''' workspace_reset() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] user2 = reg_user2() msg1 = send_msg1(user1, channel1) with pytest.raises(AccessError): message.edit({ 'token': user2['token'], 'message_id': msg1['message_id'], 'message': 'edit' })
def test_edit1(): ''' Test valid use of message.edit where someone is editing their own message ''' workspace_reset() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] msg1 = send_msg1(user1, channel1) message.edit({ 'token': user1['token'], 'message_id': msg1['message_id'], 'message': 'edit' }) assert msg1['message'] == 'edit'
def test_userid_not_owner(): 'User is not an owner case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channel_info = ret['channel'] user2 = reg_user2() token2 = user2['token'] u_id2 = user2['u_id'] channel_id = channel_info['channel_id'] channel.join(token2, channel_id) channel.addowner(token1, channel_id, u_id2) # Invalid user_id = 100 with pytest.raises(InputError) as e: channel.removeowner(token2, channel_id, 100)
def test_channel_messages_unauthorised(): 'User is not a member case' workspace_reset() ret = register_and_create() user1 = ret['user'] token1 = user1['token'] channelInfo = ret['channel'] channel_id = channelInfo['channel_id'] user2 = reg_user2() token2 = user2['token'] payload = {'token': token1, 'channel_id': channel_id, 'message': "hello"} # Send message message.send(payload) # AccessError when user sends message to channel they aren't a member of # user2 isn't a member with pytest.raises(AccessError) as e: channel.messages(token2, channel_id, 0)
def test_invalid_id(): 'testing error case' workspace_reset() ret = register_and_create() user = ret['user'] channel = ret['channel'] payload = { 'token': user['token'], 'channel_id': channel['channel_id'], 'length': 30 } result = standup.start(payload) # pylint: disable=W0612 payload2 = {'token': user['token'], 'channel_id': 100} with pytest.raises(InputError): standup.start(payload2) # pylint: disable=C0304
def test_edit3(): ''' Someone attempts to edit a message by replacing it witha a blank string ''' workspace_reset() message_store = get_messages_store() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] msg1 = send_msg1(user1, channel1) message.edit({ 'token': user1['token'], 'message_id': msg1['message_id'], 'message': '' }) assert msg1 not in message_store assert msg1 not in channel1['messages']
def test_remove2(): ''' The admin of a channel is attempting to remove a message ''' workspace_reset() messages_store = get_messages_store() #register user1 and create channel1 ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] user2 = reg_user2() channel.invite(user1['token'], channel1['channel_id'], user2['u_id']) msg1 = send_msg1(user2, channel1) message.remove({'token': user1['token'], 'message_id': msg1['message_id']}) assert msg1 not in messages_store assert msg1 not in channel1['messages']
def test_unauth_owner(): 'testing error case' #user is not an owner workspace_reset() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] user2 = reg_user2() token = user1['token'] channel_id = channel1['channel_id'] u_id = user2['u_id'] channel.invite(token, channel_id, u_id) msg1 = send_msg1(user2, channel1) with pytest.raises(InputError): message.pin({ 'token': user2['token'], 'message_id': msg1['message_id'], }) # pylint: disable=C0304
def test_edit2(): ''' Test if an owner is editing another users message ''' workspace_reset() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] user2 = reg_user2() channel.invite(user1['token'], channel1['channel_id'], user2['u_id']) msg1 = send_msg1(user2, channel1) message.edit({ 'token': user1['token'], 'message_id': msg1['message_id'], 'message': 'edit' }) assert msg1['message'] == 'edit'
def test_unauth_edit1(): ''' Someone is attempting to edit another users message but they are not an owner ''' workspace_reset() ret = register_and_create() user1 = ret['user'] channel1 = ret['channel'] user2 = reg_user2() invite_to_ch1(user1, user2, channel1) msg1 = send_msg1(user1, channel1) with pytest.raises(AccessError): message.edit({ 'token': user2['token'], 'message_id': msg1['message_id'], 'message': 'edit' })
import urllib.request import json from test_helper_functions import reg_user1, reg_user2, register_and_create import pytest BASE_URL = 'http://127.0.0.1:4999' ret = register_and_create() user1 = ret['user'] channelInfo = ret['channel'] channel_id = channelInfo['channel_id'] user2 = reg_user2() token = user1['token'] u_id = user1['u_id'] token2 = user2['token'] def test_channel_invite(): # channel_invite (POST) data = json.dumps({ 'token': token, 'channel_id': channel_id, 'u_id': u_id }).encode('utf-8') req = urllib.request.Request(f"{BASE_URL}/channel/invite", data=data, headers={'Content-Type': 'application/json'}) response = urllib.request.urlopen(req) payload = json.load(response)