def test_message_unreact_invalid_msg_id():
    # Invalid message id raises InputError
    clear_v1()
    user = auth_register_v2("*****@*****.**", "password", "bob", "williams")
    channel = channels_create_v2(user['token'], 'channel example', True)
    msg = message_send_v2(user["token"], channel['channel_id'], 'helo world')
    message_react_v1(user['token'], msg["message_id"], 1)
    with pytest.raises(InputError):
        message_unreact_v1(user['token'], "invalid message id", 1)
Exemple #2
0
def test_not_react(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 = "Hello World !"
    message_id = message_send_v2(user_token, channel_id, message)['message_id']
    react_id = 1
    
    with pytest.raises(InputError):
        message_unreact_v1(user_token, message_id, react_id)
Exemple #3
0
def message_unreact():
    parameters = request.get_json()
    token = parameters['token']
    message_id = parameters['message_id']
    react_id = parameters['react_id']
    output = message_unreact_v1(token, message_id, react_id)
    return dumps(output)
def test_message_unreact_not_reacted():
    # Unreacting to an unreacted message by user raises InputError
    clear_v1()
    user = auth_register_v2("*****@*****.**", "password", "bob", "williams")
    user2 = auth_register_v2("*****@*****.**", "password", "bob",
                             "williams")

    channel = channels_create_v2(user['token'], 'channel example', True)
    msg = message_send_v2(user["token"], channel['channel_id'], 'helo world')
    with pytest.raises(InputError):
        message_unreact_v1(user["token"], msg["message_id"], 1)

    dm = dm_create_v1(user['token'], [user2["auth_user_id"]])
    msg = message_senddm_v1(user["token"], dm["dm_id"], "hi hi")
    with pytest.raises(InputError):
        message_unreact_v1(user["token"], msg["message_id"], 1)
def message_unreact():
    data = request.get_json()
    token = data['token']
    message_id = data['message_id']
    react_id = data['react_id']

    output = message_unreact_v1(token, message_id, react_id)

    return dumps(output)
Exemple #6
0
def message_unreact():
    info = request.get_json()
    token = info["token"]
    message_id = info["message_id"]
    react_id = info["react_id"]

    message_unreact = message_unreact_v1(token, message_id, react_id)

    return dumps(message_unreact)
Exemple #7
0
def test_invalid_token(reg_user, create_channel):
    
    clear_v2()
    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id =  new_user['auth_user_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']
    # new message
    message = "Hello World !"
    message_id = message_senddm_v1(user_token, dm_id, message)['message_id']
    
    react_id = 1
    message_react_v1(user_token, message_id, react_id)

    with pytest.raises(AccessError):
        message_unreact_v1("invalid_token", message_id, react_id)
Exemple #8
0
def test_invaild_message_id_dm(reg_user):
    clear_v2()

    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id =  new_user['auth_user_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']
    # new message
    message = "Hello World !"
    message_id = message_senddm_v1(user_token, dm_id, message)['message_id']
    
    react_id = 1
    message_react_v1(user_token, message_id, react_id)

    with pytest.raises(InputError):
        message_unreact_v1(user_token, message_id + 1, react_id)
def test_message_unreact_user_not_member():
    # Authorised user is not a member of the channel or DM the message exists in
    clear_v1()
    user = auth_register_v2("*****@*****.**", "password", "bob", "williams")
    user2 = auth_register_v2("*****@*****.**", "password", "billy",
                             "williams")
    channel = channels_create_v2(user['token'], 'channel example', True)
    channel_join_v2(user2['token'], channel['channel_id'])
    msg = message_send_v2(user["token"], channel['channel_id'], 'helo world')
    message_react_v1(user2['token'], msg["message_id"], 1)
    # User leaves channel so cannot unreact
    channel_leave_v1(user2['token'], channel['channel_id'])
    with pytest.raises(AccessError):
        message_unreact_v1(user2['token'], msg["message_id"], 1)

    dm = dm_create_v1(user['token'], [user2["auth_user_id"]])
    msg = message_senddm_v1(user["token"], dm["dm_id"], "hi hi")
    message_react_v1(user2['token'], msg["message_id"], 1)
    dm_leave_v1(user2["token"], dm["dm_id"])
    with pytest.raises(AccessError):
        message_unreact_v1(user2["token"], msg["message_id"], 1)
def test_message_unreact_simple_case_dm():
    # Message already reacted to by user raises InputError
    clear_v1()
    user = auth_register_v2("*****@*****.**", "password", "bob", "williams")
    user2 = auth_register_v2("*****@*****.**", "password", "billy",
                             "williams")
    dm = dm_create_v1(user['token'], [user2['auth_user_id']])
    message_senddm_v1(user["token"], dm['dm_id'],
                      'message to dilute the history')
    msg = message_senddm_v1(user["token"], dm['dm_id'], 'helo world')
    message_react_v1(user['token'], msg["message_id"], 1)
    message_react_v1(user2['token'], msg["message_id"], 1)

    message_unreact_v1(user['token'], msg["message_id"], 1)

    msg_list = dm_messages_v1(user2['token'], dm['dm_id'], 0)['messages']
    assert msg_list[0]['reacts'] == [{
        'react_id': 1,
        'u_ids': [user2['auth_user_id']],
        'is_this_user_reacted': True,
    }]
Exemple #11
0
def test_no_channel(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 = "Hello World !"
    message_id = message_send_v2(user_token, channel_id, message)['message_id']
    
    # anthor user
    another_user = reg_user(1)
    another_token = another_user['token']
    
    react_id = 1
    message_react_v1(user_token, message_id, react_id)

    with pytest.raises(AccessError):
        message_unreact_v1(another_token, message_id, react_id)
def test_message_unreact_simple_case_channel():
    # Message already reacted to by user raises InputError
    clear_v1()
    user = auth_register_v2("*****@*****.**", "password", "bob", "williams")
    user2 = auth_register_v2("*****@*****.**", "password", "billy",
                             "williams")
    channel = channels_create_v2(user['token'], 'channel example', True)
    channel_join_v2(user2['token'], channel['channel_id'])
    message_send_v2(user["token"], channel['channel_id'],
                    'message to dilute the history')
    msg = message_send_v2(user["token"], channel['channel_id'], 'helo world')
    message_react_v1(user['token'], msg["message_id"], 1)
    message_react_v1(user2['token'], msg["message_id"], 1)

    message_unreact_v1(user2['token'], msg["message_id"], 1)

    msg_list = channel_messages_v2(user2['token'], channel['channel_id'],
                                   0)['messages']
    assert msg_list[0]['reacts'] == [{
        'react_id': 1,
        'u_ids': [user['auth_user_id']],
        'is_this_user_reacted': False,
    }]
Exemple #13
0
def test_no_dm(reg_user):

    clear_v2()

    # new user
    new_user = reg_user(0)
    user_token = new_user['token']
    user_id =  new_user['auth_user_id']
    # new dm
    new_dm = dm_create_v1(user_token, [user_id])
    dm_id = new_dm['dm_id']
    # new message
    message = "Hello World !"
    message_id = message_senddm_v1(user_token, dm_id, message)['message_id']
    
    # anthor user
    another_user = reg_user(1)
    another_token = another_user['token']
    
    react_id = 1
    message_react_v1(user_token, message_id, react_id)

    with pytest.raises(AccessError):
        message_unreact_v1(another_token, message_id, react_id)
Exemple #14
0
def test_message_unreact_errors(user_setup, dm_setup, channel_setup,
                                message_setup):
    with pytest.raises(AccessError):
        message_unreact_v1(make_token(10000), 0, 1)

    # message_id is not a valid message within a channel or DM that the authorised user has joined
    with pytest.raises(InputError):
        message_unreact_v1(make_token(1), 100, 1)

    # react_id is not a valid React ID
    with pytest.raises(InputError):
        message_unreact_v1(make_token(2), 0, 5)

    # Message with ID message_id does not contain an active React with/
    #   ID react_id from the authorised user
    with pytest.raises(InputError):
        message_unreact_v1(make_token(2), 0, 1)

    # The authorised user is not a member of the channel or DM that the message is within
    message_send_v2(make_token(0), 2, "yuh")
    message_react_v1(make_token(0), 20, 1)
    with pytest.raises(AccessError):
        message_react_v1(make_token(1), 20, 1)
Exemple #15
0
def test_dm_member(reg_user, crt_dm, send_dm):

    clear_v2()

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

    # anthor user
    another_user = reg_user(1)
    another_token = another_user['token']

    # new channel
    dm_id = crt_dm(user_token, [another_user['auth_user_id']])['dm_id']
    # new message
    message = "Hello World !"
    message_id = send_dm(user_token, dm_id, message)['message_id']
    
    react_id = 1
    message_react_v1(another_token, message_id, react_id)

    assert message_unreact_v1(another_token, message_id, react_id) == {}
Exemple #16
0
def test_react_and_unreact_v1(user_setup, dm_setup, channel_setup):
    # react to the message in the channel
    message_send_v2(make_token(2), 0, "0")
    assert message_react_v1(make_token(2), 0, 1) == {}
    # react to the message in the dm

    message_senddm_v1(make_token(2), 0, "1")
    assert message_react_v1(make_token(2), 1, 1) == {}
    assert channel_messages_v2(make_token(2), 0, 0) == {
        "messages": [
            {
                "message_id":
                0,
                "u_id":
                2,
                "message":
                "0",
                "time_created":
                create_timestamp(),
                "channel_id":
                0,
                "dm_id":
                -1,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [2],
                    'is_this_user_reacted': True
                }],
                'is_pinned':
                False
            },
        ],
        "start":
        0,
        "end":
        -1,
    }
    assert dm_messages_v1(make_token(2), 0, 0) == {
        "messages": [
            {
                "message_id":
                1,
                "u_id":
                2,
                "message":
                "1",
                "time_created":
                create_timestamp(),
                "channel_id":
                -1,
                "dm_id":
                0,
                'reacts': [{
                    'react_id': 1,
                    'u_ids': [2],
                    'is_this_user_reacted': True
                }],
                'is_pinned':
                False
            },
        ],
        "start":
        0,
        "end":
        -1,
    }

    # remove all the reacts
    assert message_unreact_v1(make_token(2), 0, 1) == {}
    assert message_unreact_v1(make_token(2), 1, 1) == {}
    assert channel_messages_v2(make_token(2), 0, 0) == {
        "messages": [
            {
                "message_id":
                0,
                "u_id":
                2,
                "message":
                "0",
                "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,
    }