Example #1
0
def test_edit_diffuser():
    '''
    Test edit as a different user
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    msg1_id = get_message_id(message_list, "Hello world!")

    # Logout
    auth_logout(token)

    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    # SETUP END

    with pytest.raises(AccessError, match=r"*"):
        message_edit(token, msg1_id, "update")
Example #2
0
def test_message_edit():
    '''
    Test edit as the poster of the message on multiple messages
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    msg1_id = get_message_id(message_list, "Hello world!")
    msg2_id = get_message_id(message_list, "another message")
    # SETUP END

    message_edit(token, msg1_id, "Updated message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Updated message") == "Updated message"
    message_edit(token, msg2_id, "Another update")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Another update") == "Another update"
Example #3
0
def test_remove_owner():
    '''
    Test remove as an owner of the channel
    '''
    reset_data()
    # SETUP
    registered_user = auth_register("*****@*****.**", "123456", "John",
                                    "Smith")
    first_token = registered_user['token']
    c_id = channel_create(first_token, "Channel1", 'true')

    # Add two messages
    message_send(first_token, c_id, "Hello world!")
    message_list = get_messages(c_id)

    # Login as a new user
    registered_user = auth_register("*****@*****.**", "1password", "Bob",
                                    "Smith")
    token = registered_user['token']
    u_id = registered_user['u_id']

    # Set new user as a channel owner
    channel_join(token, c_id)
    channel_addowner(first_token, c_id, u_id)

    # SETUP END
    msg1_id = get_message_id(message_list, "Hello world!")

    message_remove(token, msg1_id)
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") is None
Example #4
0
def test_remove_simple():
    '''
    Test remove with multiple messages
    '''
    reset_data()
    # SETUP
    registered_user = auth_register("*****@*****.**", "123456", "John",
                                    "Smith")
    token = registered_user['token']

    c_id = channel_create(token, "Channel1", 'true')

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    msg1_id = get_message_id(message_list, "Hello world!")
    msg2_id = get_message_id(message_list, "another message")
    # SETUP END

    # Delete both messages one by one
    message_remove(token, msg1_id)
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") is None
    message_remove(token, msg2_id)
    message_list = get_messages(c_id)
    assert find_message(message_list, "another message") is None
Example #5
0
def test_remove_admin():
    '''
    Test remove as an admin of the slack
    '''
    reset_data()
    # SETUP
    registered_user = auth_register("*****@*****.**", "123456", "John",
                                    "Smith")
    first_token = registered_user['token']

    c_id = channel_create(first_token, "Channel1", 'true')

    # Add two messages
    message_send(first_token, c_id, "Hello world!")
    message_send(first_token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    # Login as a new user
    registered_user = auth_register("*****@*****.**", "1password", "Bob",
                                    "Smith")
    token = registered_user['token']
    u_id = registered_user['u_id']

    # Set new user as an admin of slack
    admin_userpermission_change(first_token, u_id, 2)
    # SETUP END

    message_list = get_messages(c_id)
    msg1_id = get_message_id(message_list, "Hello world!")
    message_remove(token, msg1_id)
    assert find_message(message_list, "Hello world!") is None
Example #6
0
def test_remove_diffuser():
    '''
    Test remove as a different user in the channel
    '''
    reset_data()
    # SETUP
    registered_user = auth_register("*****@*****.**", "123456", "John",
                                    "Smith")
    token = registered_user['token']

    c_id = channel_create(token, "Channel1", 'true')

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    msg1_id = get_message_id(message_list, "Hello world!")

    # Logout
    auth_logout(token)

    # Login as a new user
    registered_user = auth_register("*****@*****.**", "1password", "Bob",
                                    "Smith")
    token = registered_user['token']

    # SETUP END

    with pytest.raises(AccessError, match=r"*"):
        message_remove(token, msg1_id)
Example #7
0
def test_greaterThanFiftyMessages():

    # setup begins
    reset_data()
    registerNewAccount = auth_register("*****@*****.**", "validpassword", "Night", "s")
    u_id = registerNewAccount['u_id']
    token = registerNewAccount['token']    
    newChannel = channel_create(token, "New Channel", True)
    channel_id = newChannel
    
    
    message_send51(token,channel_id,"Hello") # I did not want to write this out 51 times, 
                                             # and was unsure how to shorten this   
    
    # set up ends

# unable to implement x50 of message send and test during the current iteration    
    assert channel_messages(token, 123456, 0) == [{"messages": ["Hello"],
                                                               "start" : 0, "end" : 0}]
    message_send(token,channel_id,"Hello")


    assert channel_messages(token, 123456, 0) == [{"messages": ["Hello","Hello"], "start" : 0, "end" : -1}] 

           
Example #8
0
def test_edit_notoken():
    '''
    Test edit with an invalid or no token
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    msg1_id = get_message_id(message_list, "Hello world!")
    msg2_id = get_message_id(message_list, "another message")
    # SETUP END

    with pytest.raises(AccessError, match=r"*"):
        message_edit("123", msg1_id, "update")
        message_edit('', msg2_id, "there is no message")
Example #9
0
def test_nochannel():
    '''
    Test sending a message to an invalid/non existent channel
    '''
    reset_data()

    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    # SETUP END

    with pytest.raises(ValueError, match=r"*No message*"):
        message_send(token, 5, 'Hello')
        message_send(token, None, 'Hello')
Example #10
0
def test_lessThanFiftyMessages():
    
    # setup begins
    reset_data()
    registerNewAccount = auth_register("*****@*****.**", "validpassword", "Night", "s")
    u_id = registerNewAccount['u_id']
    token = registerNewAccount['token']    
    newChannel = channel_create(token, "New Channel", True)
    channel_id = newChannel
    
    message_send(token,channel_id,"Hello")
    
    # set up ends
    
    assert channel_messages(token, 123456, 0) == [{"messages": "Hello", "start" : 0, "end" : -1}]
Example #11
0
def test_no_message():
    '''
    Test sending a message with no input
    '''
    reset_data()

    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, 'Channel1', 'true')
    # SETUP END

    with pytest.raises(ValueError, match=r"*"):
        message_send(token, c_id, None)
Example #12
0
def test_long():
    '''
    Test sending a message over maxmium character limit (1000)
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, 'Channel1', 'true')
    # SETUP END

    with pytest.raises(ValueError, match=r"*Over 1000 characters*"):
        message_send(token, c_id, 'long message' * 1000)
        message_send(token, c_id, 'very' * 1001)
Example #13
0
def test_maximum():
    '''
    Test sending a message at the maxmium character limit (1000)
    '''
    reset_data()

    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, 'Channel1', 'true')
    # SETUP END

    message_send(token, c_id, 'a' * 1000)
    message_list = get_messages(c_id)
    assert 'a' in message_list[0]['message']
Example #14
0
def test_message_unreact():
    '''
    Test working message_unreact and its errors
    '''
    reset_data()
    # SETUP START
    token = auth_register('*****@*****.**', 'pass123', 'john',
                          'apple')['token']
    second_token = auth_register('*****@*****.**', 'pass147', 'vicks',
                                 'uwu')['token']
    channel_id_public = channel_create(token, 'newChannel', 'true')
    msg_id = message_send(token, channel_id_public, "firstMessage")
    react_id = 1
    message_react(token, msg_id, react_id)
    # SETUP END

    # Invalid token
    with pytest.raises(AccessError):
        message_unreact('invalidToken', msg_id, react_id)

    # msg_id is invalid
    with pytest.raises(ValueError):
        message_unreact(token, 666, react_id)

    # User is not in the channel
    with pytest.raises(AccessError):
        message_unreact(second_token, msg_id, react_id)

    # React id is invalid
    with pytest.raises(ValueError):
        message_unreact(token, msg_id, 200)

    # Working unreact
    message_unreact(token, msg_id, react_id)
Example #15
0
def test_channel_messages():
	reset_data()
    # SETUP START
	token = auth_register('*****@*****.**', 'pass123', 'john', 'apple')['token']
	channel_id_public = channel_create(token, 'newChannel', True)
	message_send(token, channel_id_public, "firstMessage")
	# SETUP END

	# Invalid token
	with pytest.raises(AccessError, match = r"*"):
		channel_messages(123, channel_id_public, 0)

	# Invalid channel id
	with pytest.raises(ValueError, match = r"*"):
		channel_messages(token, 123, 0)
        
	# Working channel messages (less than 50 messages)
	assert channel_messages(token, channel_id_public, 0) == [{"messages": "firstMessage", "start" : 0, "end" : -1}]
Example #16
0
def test_edit_longmessage():
    '''
    Test edit when the edit is over the character limit
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_list = get_messages(c_id)

    msg1_id = get_message_id(message_list, "Hello world!")
    long_message = "a" * 1001

    with pytest.raises(ValueError):
        message_edit(token, msg1_id, long_message)
Example #17
0
def test_message_edit_empty():
    '''
    Test edit with an empty input, should delete the message
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    msg1_id = get_message_id(message_list, "Hello world!")

    message_edit(token, msg1_id, "")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Updated message") is None
Example #18
0
def test_simple():
    '''
    Test sending multiple messages in different channels
    '''
    reset_data()

    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, 'Channel1', 'true')
    # SETUP END

    # Send message
    message_send(token, c_id, 'Hello world!')
    message_list = get_messages(c_id)
    assert find_message(message_list, 'Hello world!') == 'Hello world!'

    # Send message to a channel that already has a message
    message_send(token, c_id, 'another message')
    message_list = get_messages(c_id)
    assert find_message(message_list, 'Hello world!') == 'Hello world!'
    assert find_message(message_list, 'another message') == 'another message'

    # Send message to another channel
    c2_id = channel_create(token, 'Channel2', 'true')

    # Send message
    message_send(token, c2_id, 'Hello world!')
    message_list = get_messages(c2_id)
    assert find_message(message_list, 'Hello world!') == 'Hello world!'
Example #19
0
def test_remove_no_id():
    '''
    Test remove when message_id doesn't exist
    '''
    reset_data()
    # SETUP
    registered_user = auth_register("*****@*****.**", "123456", "John",
                                    "Smith")
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"
    # SETUP END

    with pytest.raises(ValueError, match=r"*"):
        message_remove(token, "123asfawf12")
        message_remove(token, "")
Example #20
0
def test_edit_same():
    '''
    Test edit when the editted message is the same as the original
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world") == "Hello world"

    msg1_id = get_message_id(message_list, "Hello world")
    # SETUP END

    with pytest.raises(ValueError, match=r"*"):
        message_edit(token, msg1_id, "Hello world")
Example #21
0
def test_edit_owner():
    '''
    Test edit as the owner of the channel
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    first_token = registered_user['token']
    c_id = channel_create(first_token, "Channel1", 'true')

    # Add two messages
    message_send(first_token, c_id, "Hello world!")
    message_send(first_token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"

    # Login as a new user
    registered_user = auth_register("*****@*****.**", "1password", "Bob",
                                    "Smith")
    token = registered_user['token']
    u_id = registered_user['u_id']

    # Set new user as a channel owner
    channel_join(token, c_id)
    channel_addowner(first_token, c_id, u_id)

    msg1_id = get_message_id(message_list, "Hello world!")
    msg2_id = get_message_id(message_list, "another message")
    # SETUP END

    message_edit(token, msg1_id, "Updated message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Updated message") == "Updated message"
    message_edit(token, msg2_id, "Another update")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Another update") == "Another update"
Example #22
0
def test_edit_cap():
    '''
    Test edit at the maximum character limit
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"

    msg1_id = get_message_id(message_list, "Hello world!")
    # SETUP END

    message_edit(token, msg1_id, "a" * 999)
    message_list = get_messages(c_id)
    assert 'a' in message_list[0]['message']
Example #23
0
def test_unreact_already():
    '''
    Test message_unreact when the message already has no react
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']

    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"

    msg1_id = get_message_id(message_list, "Hello world!")
    # SETUP END

    with pytest.raises(ValueError):
        message_unreact(token, msg1_id, 1)
Example #24
0
def test_edit_no_id():
    '''
    Test edit when the message ID is invalid or doesn't exist
    '''
    reset_data()
    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, "Channel1", 'true')
    # SETUP END

    # Add two messages
    message_send(token, c_id, "Hello world!")
    message_send(token, c_id, "another message")
    message_list = get_messages(c_id)
    assert find_message(message_list, "Hello world!") == "Hello world!"
    assert find_message(message_list, "another message") == "another message"
    # SETUP END

    with pytest.raises(ValueError, match=r"*"):
        message_edit(token, "123asfawf12", "update")
        message_edit(token, "", "there is no message")
Example #25
0
def test_search_simple():
    '''
    Test search given a query string
    '''
    reset_data()

    # SETUP

    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']

    c_id = channel_create(token, 'Channel1', 'true')

    # SETUP END

    message_send(token, c_id, 'Hello')
    message_send(token, c_id, 'Dont find this')

    return_dic = search(token, "Hello")
    messages = return_dic['messages']

    for message in messages:
        assert "Hello" in message['message']
Example #26
0
def test_channel_messages():
    '''
    Testing cases of channel_messages
    '''
    reset_data()
    # START SETUP
    token = auth_register('*****@*****.**', 'pass123', 'john',
                          'apple')['token']
    second_token = auth_register('*****@*****.**', 'pass147', 'vicks',
                                 'uwu')['token']
    third_token = auth_register('*****@*****.**', 'pass134124', 'lol',
                                'lmao')['token']
    channel_id_public = channel_create(token, 'newChannel', 'true')
    channel_id_private = channel_create(token, 'privateChannel', 'false')
    # END SETUP

    # Calling Channel messages when there are no messages
    with pytest.raises(ValueError):
        channel_messages(token, channel_id_public, 0)

    # Functioning channel messages base case
    message_send(token, channel_id_public, "Hello")
    channel_messages(token, channel_id_public, 0)

    # Calling Channel messages when current user is not in the target channel
    # and target channel is private
    message_send(token, channel_id_private, "Hi")
    with pytest.raises(AccessError):
        channel_messages(second_token, channel_id_private, 0)

    # Sending 123 messages and reacting
    message_react(token, 0, 1)
    channel_join(second_token, channel_id_public)
    message_react(second_token, 0, 1)
    channel_join(third_token, channel_id_public)
    message_send(third_token, channel_id_public, "Hey")

    counter = 2
    while counter < 124:
        message_send(token, channel_id_public, "Hello")
        counter = counter + 1

    # Testing case where end = -1
    channel_messages(token, channel_id_public, 0)
    channel_messages(token, channel_id_public, 50)
    channel_messages(token, channel_id_public, 100)
Example #27
0
def send_message():
    token = request.form.get('token')
    channel_id = request.form.get('channel_id')
    message = request.form.get('message')
    try:
        output = message_send(type_cast(token), int(channel_id), message)
    except ValueError as e:
        return str(e)
    except AccessError as e:
        return dumps({
            'code': 400,
            'name': 'AccessError',
            'message': str(e)
        }), 400
    save()
    return dumps({'message_id': output})
Example #28
0
def test_message_react_another():
    '''
    Test message_react as another member
    '''
    reset_data()
    # SETUP START
    token = auth_register('*****@*****.**', 'pass123', 'john',
                          'apple')['token']
    second_token = auth_register('*****@*****.**', 'pass147', 'vicks',
                                 'uwu')['token']
    channel_id_public = channel_create(token, 'newChannel', 'true')
    msg_id = message_send(token, channel_id_public, "firstMessage")
    # SETUP END

    react_id = 1

    # Working react
    message_react(token, msg_id, react_id)

    # React as another user
    channel_join(second_token, 0)
    message_react(second_token, msg_id, react_id)
Example #29
0
def test_message_unpin():
    '''
    Test working message_unpin and all its errors
    '''
    reset_data()
    # SETUP START
    token = auth_register('*****@*****.**', 'pass123', 'john',
                          'apple')['token']
    second_token = auth_register('*****@*****.**', 'pass147', 'vicks',
                                 'uwu')['token']
    channel_id_public = channel_create(token, 'newChannel', 'true')
    msg_id = message_send(token, channel_id_public, "firstMessage")
    # SETUP END

    # Invalid token
    with pytest.raises(AccessError):
        message_unpin('invalidToken', msg_id)

    # msg_id is invalid
    with pytest.raises(ValueError):
        message_unpin(token, 666)

    # User is not in the channel
    with pytest.raises(AccessError):
        message_unpin(second_token, msg_id)

    # User is not authorised
    channel_join(second_token, channel_id_public)
    with pytest.raises(ValueError):
        message_unpin(second_token, msg_id)

    # Working unpin
    message_pin(token, msg_id)
    message_unpin(token, msg_id)

    # Message not pinned
    with pytest.raises(ValueError):
        message_unpin(token, msg_id)
Example #30
0
def test_unauthorized():
    '''
    Test sending a message as an unauthorized user
    '''
    reset_data()

    # SETUP
    registered_user = auth_register('*****@*****.**', '123456', 'John',
                                    'Smith')
    token = registered_user['token']
    c_id = channel_create(token, 'Channel1', 'true')
    # SETUP END

    # Login as new user not part of channel
    auth_logout(token)
    registered_user = auth_register('*****@*****.**', '123456', 'Bob',
                                    'Smith')
    token = registered_user['token']

    with pytest.raises(AccessError, match=r"*No message*"):
        message_send(token, c_id, 'Hello')
        message_send('', c_id, 'Hello')
        message_send(1234, c_id, 'Hello')