Beispiel #1
0
def test_change_non_author_non_dreams_owner_channel_owner(
        reg_user, create_channel):

    clear_v2()

    # new user
    reg_user(
        0
    )  # Create first user, who is a dreams owner (for testing purposes, we want non-dreams-owners)
    new_user = reg_user(1)
    user_token = new_user['token']
    new_user_2 = reg_user(2)

    # new channel
    channel_id = create_channel(user_token)['channel_id']
    channel_join_v2(new_user_2['token'], channel_id)
    # new message
    message_id = message_send_v2(new_user_2['token'], channel_id,
                                 "Hi Britney!")['message_id']

    message = "Hello World!"
    message_edit_v2(user_token, message_id, message)

    messages = channel_messages_v2(user_token, channel_id, 0)['messages']

    for msg in messages:
        if msg['message_id'] == message_id:
            assert msg['message'] == "Hello World!"
Beispiel #2
0
def test_different_permissions_edit():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    channel_invite_v2(user_1['token'], channel_1['channel_id'],
                      user_2['auth_user_id'])
    channel_invite_v2(user_1['token'], channel_1['channel_id'],
                      user_3['auth_user_id'])
    msg1 = message_send_v2(user_2['token'], channel_1['channel_id'],
                           'Hello World!')
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Hello World!"
    assert message_edit_v2(user_1['token'], msg1['message_id'],
                           'Goodbye World!') == {}
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Goodbye World!"
    assert message_edit_v2(user_2['token'], msg1['message_id'],
                           'Hello Again World!') == {}
    assert channel_messages_v2(
        user_1['token'], channel_1['channel_id'],
        0)['messages'][0]['message'] == "Hello Again World!"
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 1
    with pytest.raises(AccessError):
        message_edit_v2(user_3['token'], msg1['message_id'], 'Goodbye Again!')
    assert channel_messages_v2(
        user_1['token'], channel_1['channel_id'],
        0)['messages'][0]['message'] == "Hello Again World!"
Beispiel #3
0
def message_edit():
    parameters = request.get_json()
    token = parameters['token']
    message_id = parameters['message_id']
    message = parameters['message']
    message_edit_v2(token, message_id, message)
    return dumps({})
Beispiel #4
0
def test_different_permissions_edit_remove():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    user_3 = auth_register_v2('*****@*****.**', 'cccccc', 'c', 'c')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    channel_invite_v2(user_1['token'], channel_1['channel_id'],
                      user_2['auth_user_id'])
    channel_invite_v2(user_1['token'], channel_1['channel_id'],
                      user_3['auth_user_id'])
    msg1 = message_send_v2(user_2['token'], channel_1['channel_id'],
                           'First Message')
    msg2 = message_send_v2(user_2['token'], channel_1['channel_id'],
                           'Second Message')
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 2
    assert message_edit_v2(user_1['token'], msg1['message_id'], '') == {}
    assert len(
        channel_messages_v2(user_1['token'], channel_1['channel_id'],
                            0)['messages']) == 1
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Second Message"
    assert message_edit_v2(user_2['token'], msg2['message_id'], '') == {}
    msg3 = message_send_v2(user_2['token'], channel_1['channel_id'],
                           'Third Message')
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Third Message"
    with pytest.raises(AccessError):
        message_edit_v2(user_3['token'], msg3['message_id'], '')
    with pytest.raises(AccessError):
        message_remove_v1(user_3['token'], msg3['message_id'])
    assert channel_messages_v2(user_1['token'], channel_1['channel_id'],
                               0)['messages'][0]['message'] == "Third Message"
Beispiel #5
0
def test_message_edit_message_id_not_exist():
    # InputError should be raised if message_id not found
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'password542', 'Fred', 'Moe')
    channel = channels_create_v2(user['token'], 'Title', True)
    message_send_v2(user['token'], channel['channel_id'], 'yo')
    with pytest.raises(InputError):
        message_edit_v2(user['token'], 2, 'fake msg')
Beispiel #6
0
def test_message_edit_invalid_token():
    # AccessError raised when invalid token is passed
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'passwod298372', 'Ming', 'Lee')
    channel = channels_create_v2(user['token'], 'TITLE', True)
    msg = message_send_v2(user['token'], channel['channel_id'], 'test')
    with pytest.raises(AccessError):
        message_edit_v2('invalid_token', msg['message_id'], 'no')
Beispiel #7
0
def test_edit_from_dm():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in')
    message_edit_v2(user_1['token'], msg_1['message_id'], 'Beep beep lettuce')
    assert dm_messages_v1(user_1['token'], dm_1['dm_id'],
                          0)['messages'][0]['message'] == 'Beep beep lettuce'
Beispiel #8
0
def test_message_edit_message_too_long():
    # InputError should be raised if edited message is more than 100 characters
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Melon',
                            'Fruit')
    channel = channels_create_v2(user['token'], 'Insert Title Here', True)
    msg_sent = message_send_v2(user['token'], channel['channel_id'],
                               'testing123')
    with pytest.raises(InputError):
        message_edit_v2(user['token'], msg_sent['message_id'], 'A' * 1001)
Beispiel #9
0
def test_deleted_delete():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    msg1 = message_send_v2(user_1['token'], channel_1['channel_id'],
                           'Hello World!')
    assert message_remove_v1(user_1['token'], msg1['message_id']) == {}
    with pytest.raises(AccessError):
        message_remove_v1(user_1['token'], msg1['message_id'])
    with pytest.raises(AccessError):
        message_edit_v2(user_1['token'], msg1['message_id'], '')
Beispiel #10
0
def test_tag_edit():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng")
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton")
    channel1 = channels_create_v2(user1['token'], 'Channel 1', True)
    channel_join_v2(user2['token'], channel1['channel_id'])
    msg1str = "Hi friend"
    msg1 = message_send_v2(user1['token'], channel1['channel_id'], msg1str)
    assert len(notifications_get_v1(user2['token'])['notifications']) == 0
    message_edit_v2(user1['token'], msg1['message_id'], "@joshhatton")
    assert len(notifications_get_v1(user2['token'])['notifications']) == 1
Beispiel #11
0
def test_edit_other_users_message():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    user_2 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_invite_v2(user_1['token'], channel_1['channel_id'],
                      user_2['auth_user_id'])
    msg1 = message_send_v2(user_1['token'], channel_1['channel_id'], 'Hey!')
    msg2 = message_send_v2(user_2['token'], channel_1['channel_id'], 'Hello!')
    with pytest.raises(AccessError):
        message_edit_v2(user_1['token'], msg2['message_id'], 'He is stealing')
        message_edit_v2(user_2['token'], msg1['message_id'],
                        'I did not say this')
Beispiel #12
0
def test_message_edit_empty_msg_removed():
    # If edited message is an empty string, remove the message
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Reynold',
                            'Food')
    channel = channels_create_v2(user['token'], 'Food channel', True)
    message_send_v2(user['token'], channel['channel_id'],
                    'random message to dilute')
    msg_sent = message_send_v2(user['token'], channel['channel_id'],
                               'tastes like poo')
    message_edit_v2(user['token'], msg_sent['message_id'], '')
    msg_list = channel_messages_v2(user['token'], channel['channel_id'], 0)
    assert msg_list['messages'][0]["message"] == "random message to dilute"
Beispiel #13
0
def test_invalid_token(reg_user, create_channel):

    clear_v2()
    message = "Hello World!"
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id, message)['message_id']

    with pytest.raises(AccessError):
        message_edit_v2("invalid_token", message_id, message)
Beispiel #14
0
def test_remove_from_dm():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    user_2 = auth_register_v2('*****@*****.**', 'bbbbbb', 'b', 'b')
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']])
    msg_1 = message_senddm_v1(user_1['token'], dm_1['dm_id'], 'Sliding in')
    message_remove_v1(user_1['token'], msg_1['message_id'])
    assert len(dm_messages_v1(user_1['token'], dm_1['dm_id'],
                              0)['messages']) == 0
    msg_2 = message_senddm_v1(user_1['token'], dm_1['dm_id'],
                              'Pls dont block me')
    message_edit_v2(user_1['token'], msg_2['message_id'], '')
    assert len(dm_messages_v1(user_1['token'], dm_1['dm_id'],
                              0)['messages']) == 0
Beispiel #15
0
def test_non_string_message(reg_user, create_channel):

    clear_v2()
    message = "Hello World!"
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id, message)['message_id']

    with pytest.raises(InputError):
        message_edit_v2(user_token, message_id, 123923)
Beispiel #16
0
def test_too_long(reg_user, create_channel):

    clear_v2()
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']

    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id, "test")['message_id']

    message = "a" * 1001

    with pytest.raises(InputError):
        message_edit_v2(user_token, message_id, message)
Beispiel #17
0
def message_edit():
    info = request.get_json()
    token = info["token"]
    message_id = info["message_id"]
    message = info["message"]

    message_edit = message_edit_v2(token, message_id, message)
    return dumps(message_edit)
def message_edit():
    data = request.get_json()
    token = data['token']
    message_id = data['message_id']
    message = data['message']

    output = message_edit_v2(token, message_id, message)

    return dumps(output)
Beispiel #19
0
def test_delected_message(reg_user, create_channel):

    clear_v2()

    message = "Hello World!"
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']

    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id, message)['message_id']
    # delected
    message_remove_v1(user_token, message_id)

    with pytest.raises(InputError):
        message_edit_v2(user_token, message_id, message)
Beispiel #20
0
def test_delete(reg_user, create_channel):

    clear_v2()

    message = "Hello World!"
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']

    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id, message)['message_id']

    message_edit_v2(user_token, message_id, "")

    messages = channel_messages_v2(user_token, channel_id, 0)['messages']

    assert not len(messages)
Beispiel #21
0
def test_message_edit_owner_edit():
    # Owner of a channel successfully removes another member's message
    clear_v1()
    owner = auth_register_v2('*****@*****.**', 'password232312', 'David',
                             'Johns')
    user = auth_register_v2('*****@*****.**', 'pasword23232', 'Plebian',
                            'Jones')
    channel = channels_create_v2(owner['token'], 'Boss Channel', True)
    # User joins channel
    channel_join_v2(user['token'], channel['channel_id'])
    # User sends message
    msg_sent = message_send_v2(user['token'], channel['channel_id'],
                               'this owner sux')
    # Owner deletes user's message
    message_edit_v2(owner['token'], msg_sent['message_id'], 'jk lol')
    msg_list = channel_messages_v2(owner['token'], channel['channel_id'], 0)

    assert msg_list['messages'][0]['message_id'] == msg_sent['message_id']
    assert msg_list['messages'][0]['u_id'] == user['auth_user_id']
    assert msg_list['messages'][0]['message'] == 'jk lol'
Beispiel #22
0
def test_message_edit_not_sent_from_sender_or_owner():
    # AccessError should be raised message_edit is called from someone
    # not the message sender or channel owner or Dreams owner
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'password542', 'Frank', 'Lin')
    user_2 = auth_register_v2('*****@*****.**', 'password5342', 'Matt', 'Hew')

    dm_group = dm_create_v1(user['token'], [user_2['auth_user_id']])
    msg_sent = message_senddm_v1(user['token'], dm_group['dm_id'],
                                 'testing123')

    with pytest.raises(AccessError):
        message_edit_v2(user_2['token'], msg_sent['message_id'], 'cantchange')

    ch = channels_create_v2(user['token'], "name", True)
    channel_join_v2(user_2["token"], ch["channel_id"])
    msg = message_send_v2(user["token"], ch["channel_id"], "Im a message")

    with pytest.raises(AccessError):
        message_edit_v2(user_2['token'], msg['message_id'], 'cantchange')
Beispiel #23
0
def test_message_edit_simple_case_dm():
    # Test a normal case for DM
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'password542', 'Tommy', 'Son')
    user_2 = auth_register_v2('*****@*****.**', 'password5342', 'Josh',
                              'Dann')
    dm_group = dm_create_v1(user['token'], [user_2['auth_user_id']])
    message_senddm_v1(user["token"], dm_group['dm_id'],
                      'message to dilute the history')
    msg_sent = message_senddm_v1(user['token'], dm_group['dm_id'], 'hey!')
    message_edit_v2(user['token'], msg_sent['message_id'], 'sike bye!')
    dm_msg_list = dm_messages_v1(user['token'], dm_group['dm_id'], 0)
    # message = {
    #   'message_id' = 1
    #   'u_id' = 1
    #   'message' = 'sike bye!'
    # }
    assert dm_msg_list['messages'][0]['message_id'] == msg_sent['message_id']
    assert dm_msg_list['messages'][0]['u_id'] == user['auth_user_id']
    assert dm_msg_list['messages'][0]['message'] == 'sike bye!'
Beispiel #24
0
def test_not_owner(reg_user, create_channel):

    clear_v2()

    message = "Hello World!"
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']

    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id, message)['message_id']

    another_user = auth_register_v2("*****@*****.**", "goodpass123",
                                    "Stress", "Puppy")
    another_token = another_user['token']

    with pytest.raises(AccessError):
        message_edit_v2(another_token, message_id, message)
Beispiel #25
0
def test_change(reg_user, create_channel):

    clear_v2()

    # new user
    new_user = reg_user(0)
    user_token = new_user['token']

    # new channel
    channel_id = create_channel(user_token)['channel_id']
    # new message
    message_id = message_send_v2(user_token, channel_id,
                                 "Hi Britney!")['message_id']

    message = "Hello World!"
    message_edit_v2(user_token, message_id, message)

    messages = channel_messages_v2(user_token, channel_id, 0)['messages']

    for msg in messages:
        if msg['message_id'] == message_id:
            assert msg['message'] == "Hello World!"
Beispiel #26
0
def test_message_edit_stat():
    clear_v1()    
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp', 'student')
    channel1 = channels_create_v2(result1['token'], "The party channel 1", True)
    message1 = message_send_v2(result1['token'], channel1['channel_id'], 'Hello, how are you?')
    message2 = message_send_v2(result1['token'], channel1['channel_id'], 'Hello, how are you?')
    message_edit_v2(result1['token'], message1['message_id'], 'Hi Im user 1')
    message_edit_v2(result1['token'], message2['message_id'], '')

    output = user_stats(result1['token'])

    dreams = users_stats(result1['token'])
    assert len(output['user_stats']) == 4
    assert output['user_stats']['channels_joined'][-1]['num_channels_joined'] == 1
    assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 0
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 2
    assert output['user_stats']['involvement_rate'] == 3/2

    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1]['num_channels_exist'] == 1
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 0
    assert dreams['dreams_stats']['messages_exist'][-1]['num_messages_exist'] == 1
    assert dreams['dreams_stats']['utilization_rate'] == 1
Beispiel #27
0
def test_long_edit():
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'aaaaaa', 'a', 'a')
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True)
    msg1 = message_send_v2(user_1['token'], channel_1['channel_id'],
                           'Hello World!')
    with pytest.raises(InputError):
        message_edit_v2(user_1['token'], msg1['message_id'], 'a' * 1001)
        message_edit_v2(user_1['token'], msg1['message_id'], 'b' * 1001)
        message_edit_v2(user_1['token'], msg1['message_id'], 'c' * 1001)
Beispiel #28
0
def test_message_edit_v2(user_setup, channel_setup, dm_setup, message_setup):

    message_edit_v2(make_token(3), 0, "sender changed")
    assert channel_messages_v2(make_token(3), 0, 0) == {
        "messages": [
            {
                "message_id":
                9,
                "u_id":
                2,
                "message":
                "9",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                8,
                "u_id":
                2,
                "message":
                "8",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                7,
                "u_id":
                2,
                "message":
                "7",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                6,
                "u_id":
                2,
                "message":
                "6",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                5,
                "u_id":
                2,
                "message":
                "5",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                4,
                "u_id":
                2,
                "message":
                "4",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                3,
                "u_id":
                2,
                "message":
                "3",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                2,
                "u_id":
                3,
                "message":
                "2",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
            {
                "message_id":
                0,
                "u_id":
                3,
                "message":
                "sender changed",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [],
                    'is_this_user_reacted': False
                }],
                'is_pinned':
                False
            },
        ],
        "start":
        0,
        "end":
        -1,
    }
Beispiel #29
0
def test_message_edit_v2_errors(user_setup, channel_setup, dm_setup,
                                message_setup):

    # Test 1:
    # invalid token
    with pytest.raises(AccessError):
        message_edit_v2(make_token(414345), 0, "invalid token error")

    # Test 2:
    # authorised user did not send this message and is not owner of channel/Dreams
    with pytest.raises(AccessError):
        message_edit_v2(make_token(1), 0, "user didnt send this msg error")
    # "Authorised User is not the owner of this channel and did not send this message"
    with pytest.raises(AccessError):
        message_edit_v2(make_token(2), 10, "user didnt send this msg error")
    # "Authorised User is not an owner of Dreams and did not send this message"

    # Test 3:
    # message too long
    with pytest.raises(InputError):
        message_edit_v2(make_token(2), 2, "1" * 1000 + "too many chars error")
    # "Message is longer than the 1000 character limit"
    # testing to remove a message and then try edit that removed message
    message_edit_v2(make_token(2), 9, '')
    with pytest.raises(InputError):
        message_edit_v2(make_token(2), 9, "deleted msg error")
    with pytest.raises(InputError):
        message_edit_v2(make_token(2), 1000, "non-existent msg error")