示例#1
0
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
示例#2
0
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']})
示例#3
0
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'],
        })
示例#4
0
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
示例#6
0
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)
示例#7
0
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'
            }]
示例#8
0
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"
示例#9
0
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)
示例#10
0
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']
        })
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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'
        })
示例#16
0
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)
示例#18
0
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)
示例#19
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
示例#20
0
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']
示例#22
0
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
示例#23
0
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'
示例#24
0
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'
        })
示例#25
0
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)