Esempio n. 1
0
def test_share_pin(test_data):
    a_data, b_data, _ = test_data

    a_ch_id = channels_create_v2(a_data["token"], "A channel",
                                 True)["channel_id"]
    channel_join_v2(b_data["token"], a_ch_id)

    b_dm_id = dm_create_v1(b_data["token"], [a_data["auth_user_id"]])["dm_id"]

    a_msg_id = message_send_v2(a_data["token"], a_ch_id,
                               "Message to be shared to dm")["message_id"]
    b_msgdm_id = message_senddm_v1(
        b_data["token"], b_dm_id,
        "Message to be shared to channel")["message_id"]

    a_share_id = message_share_v1(a_data["token"], a_msg_id, "Shared a msg",
                                  -1, b_dm_id)["shared_message_id"]
    b_share_id = message_share_v1(b_data["token"], b_msgdm_id, "Shared a msg",
                                  a_ch_id, -1)["shared_message_id"]

    message_pin_v1(a_data["token"], b_share_id)
    messages = channel_messages_v2(a_data["token"], a_ch_id, 0)["messages"]
    assert messages[0]["message_id"] == b_share_id
    assert messages[0]["is_pinned"] == True

    message_pin_v1(b_data["token"], a_share_id)
    messages = dm_messages_v1(b_data["token"], b_dm_id, 0)["messages"]
    assert messages[0]["message_id"] == a_share_id
    assert messages[0]["is_pinned"] == True
Esempio n. 2
0
def test_message_pin_v1_dm_invalid_message_id(reg_user, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    auth_user_id_receiver = reg_user(1)['auth_user_id']
    dm_id = dm_create_v1(token_1, [auth_user_id_receiver])['dm_id']
    message = basic_message
    message_id = message_senddm_v1(token_1, dm_id, message)['message_id']
    with pytest.raises(InputError):
        message_pin_v1(token_1, message_id + 1)
Esempio n. 3
0
def test_message_pin_v1_token_dm(reg_user, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    auth_user_id_receiver = reg_user(1)['auth_user_id']
    dm_id = dm_create_v1(token_1, [auth_user_id_receiver])['dm_id']
    message = basic_message
    message_id = message_senddm_v1(token_1, dm_id, message)['message_id']
    fake_token = 'random values r32fecaswd'
    with pytest.raises(AccessError):
        message_pin_v1(fake_token, message_id)
Esempio n. 4
0
def test_message_pin_v1_channel_invalid_message_id(reg_user,
                                                   basic_channel_name,
                                                   basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    channel_name = basic_channel_name
    channel_id = channels_create_v2(token_1, channel_name, True)['channel_id']
    message = basic_message
    message_id = message_send_v2(token_1, channel_id, message)['message_id']
    with pytest.raises(InputError):
        message_pin_v1(token_1, message_id + 1)
Esempio n. 5
0
def test_message_pin_auth_user_is_non_owner_of_dm(reg_user, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    non_owner_of_dm = reg_user(1)
    dm_id = dm_create_v1(token_1, [non_owner_of_dm['auth_user_id']])['dm_id']
    message = basic_message
    message_id = message_senddm_v1(token_1, dm_id, message)['message_id']
    with pytest.raises(AccessError):
        message_pin_v1(
            non_owner_of_dm['token'],
            message_id)  # The authorised user is not an owner of the dm
Esempio n. 6
0
def test_message_pin_v1_token_channel(reg_user, basic_channel_name,
                                      basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    channel_name = basic_channel_name
    channel_id = channels_create_v2(token_1, channel_name, True)['channel_id']
    message = basic_message
    message_id = message_send_v2(token_1, channel_id, message)['message_id']
    fake_token = 'random values r32fecaswd'
    with pytest.raises(AccessError):
        message_pin_v1(fake_token, message_id)
Esempio n. 7
0
def test_message_pin_v1_dm_message_already_pinned(reg_user, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    auth_user_id_receiver = reg_user(1)['auth_user_id']
    dm_id = dm_create_v1(token_1, [auth_user_id_receiver])['dm_id']
    message = basic_message
    message_id = message_senddm_v1(token_1, dm_id, message)['message_id']
    message_pin_v1(token_1, message_id)
    with pytest.raises(InputError):
        message_pin_v1(
            token_1,
            message_id)  # Message with ID message_id is already pinned
Esempio n. 8
0
def test_message_pin_v1_auth_user_not_part_of_dm(reg_user, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    auth_user_id_receiver = reg_user(1)['auth_user_id']
    non_member_of_dm_token = reg_user(2)['token']
    dm_id = dm_create_v1(token_1, [auth_user_id_receiver])['dm_id']
    message = basic_message
    message_id = message_senddm_v1(token_1, dm_id, message)['message_id']
    with pytest.raises(AccessError):
        message_pin_v1(
            non_member_of_dm_token,
            message_id)  # The authorised user is not a member of the dm
Esempio n. 9
0
def test_message_pin_dm_basic(reg_user, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    auth_user_id_receiver = reg_user(1)['auth_user_id']
    dm_id = dm_create_v1(token_1, [auth_user_id_receiver])['dm_id']
    message = basic_message
    message_id = message_senddm_v1(token_1, dm_id, message)['message_id']
    message_pin_v1(token_1, message_id)
    start = 0
    messages = dm_messages_v1(token_1, dm_id, start)['messages']
    assert messages[0]['message_id'] == message_id
    assert messages[0]['is_pinned'] == True
Esempio n. 10
0
def test_message_pin_channel_basic(reg_user, basic_channel_name,
                                   basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    channel_name = basic_channel_name
    channel_id = channels_create_v2(token_1, channel_name, True)['channel_id']
    message = basic_message
    message_id = message_send_v2(token_1, channel_id, message)['message_id']
    message_pin_v1(token_1, message_id)
    start = 0
    messages = channel_messages_v2(token_1, channel_id, start)['messages']
    assert messages[0]['message_id'] == message_id
    assert messages[0]['is_pinned'] == True
Esempio n. 11
0
def test_auth_user_not_owner(test_data):
    a_data, b_data, c_data = test_data

    # channel
    a_ch_id = channels_create_v2(a_data["token"], "A channel",
                                 True)["channel_id"]
    channel_join_v2(b_data["token"], a_ch_id)
    channel_join_v2(c_data["token"], a_ch_id)
    a_msg_id = message_send_v2(a_data["token"], a_ch_id,
                               "A message")["message_id"]

    with pytest.raises(AccessError):
        message_pin_v1(b_data["token"], a_msg_id)
        message_pin_v1(c_data["token"], a_msg_id)

    # dm
    a_dm_id = dm_create_v1(
        a_data["token"],
        [b_data["auth_user_id"], c_data["auth_user_id"]])["dm_id"]
    a_msgdm_id = message_senddm_v1(a_data["token"], a_dm_id,
                                   "A message")["message_id"]

    with pytest.raises(AccessError):
        message_pin_v1(b_data["token"], a_msgdm_id)
        message_pin_v1(c_data["token"], a_msgdm_id)
Esempio n. 12
0
def test_message_pin_v1_channel_message_already_pinned(reg_user,
                                                       basic_channel_name,
                                                       basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    channel_name = basic_channel_name
    channel_id = channels_create_v2(token_1, channel_name, True)['channel_id']
    message = basic_message
    message_id = message_send_v2(token_1, channel_id, message)['message_id']
    message_pin_v1(token_1, message_id)
    with pytest.raises(InputError):
        message_pin_v1(
            token_1,
            message_id)  # Message with ID message_id is already pinned
Esempio n. 13
0
def test_message_pin_v1_auth_user_not_part_of_channel(reg_user,
                                                      basic_channel_name,
                                                      basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    non_member_of_channel_token = reg_user(1)['token']
    channel_name = basic_channel_name
    channel_id = channels_create_v2(token_1, channel_name, True)['channel_id']
    message = basic_message
    message_id = message_send_v2(token_1, channel_id, message)['message_id']
    with pytest.raises(AccessError):
        message_pin_v1(
            non_member_of_channel_token,
            message_id)  # The authorised user is not a member of the channel
Esempio n. 14
0
def message_pin():
    info = request.get_json()
    token = info["token"]
    message_id = info["message_id"]

    message_pin = message_pin_v1(token, message_id)

    return dumps(message_pin)
Esempio n. 15
0
def message_pin():
    data = request.get_json()
    token = data['token']
    message_id = data['message_id']

    output = message_pin_v1(token, message_id)

    return dumps(output)
Esempio n. 16
0
def test_message_unpin_auth_user_is_non_owner_of_channel(
        reg_user, basic_channel_name, basic_message):
    clear_v2()
    token_1 = reg_user(0)['token']
    non_owner_of_channel_token = reg_user(1)['token']
    channel_name = basic_channel_name
    channel_id = channels_create_v2(token_1, channel_name, True)['channel_id']
    channel_join_v2(non_owner_of_channel_token,
                    channel_id)  #second user joinned the channel
    message = basic_message
    message_id = message_send_v2(token_1, channel_id, message)['message_id']

    message_pin_v1(token_1, message_id)
    with pytest.raises(AccessError):
        message_unpin_v1(
            non_owner_of_channel_token,
            message_id)  # The authorised user is not an owner of the channel
def test_already_unpinned(test_data):
    a_data, b_data, c_data = test_data

    a_ch_id = channels_create_v2(a_data["token"], "A channel", True)["channel_id"]
    channel_join_v2(c_data["token"], a_ch_id)
    channel_join_v2(b_data["token"], a_ch_id)

    channel_addowner_v1(a_data["token"], a_ch_id, c_data["auth_user_id"])
    channel_addowner_v1(a_data["token"], a_ch_id, b_data["auth_user_id"])

    a1_msg_id = message_send_v2(a_data["token"], a_ch_id, "My own message")["message_id"]
    message_pin_v1(a_data["token"], a1_msg_id)
    message_unpin_v1(a_data["token"], a1_msg_id)

    with pytest.raises(InputError):
        message_unpin_v1(a_data["token"], a1_msg_id)
        message_unpin_v1(b_data["token"], a1_msg_id)
        message_unpin_v1(c_data["token"], a1_msg_id)
def test_invalid_token(test_data):
    a_data, _, _ = test_data

    a_ch_id = channels_create_v2(a_data["token"], "A channel", True)["channel_id"]
    a_msg_id = message_send_v2(a_data["token"], a_ch_id, "A message")["message_id"]
    message_pin_v1(a_data["token"], a_msg_id)

    with pytest.raises(AccessError):
        message_unpin_v1("", a_msg_id)
        message_unpin_v1(0, a_msg_id)
        message_unpin_v1(4612152, a_msg_id)
        message_unpin_v1(-63, a_msg_id)
        message_unpin_v1("0986621", a_msg_id)
        message_unpin_v1("invalid.token.101", a_msg_id)
        message_unpin_v1("bytudfawuydasasawfawfdsadqafwa", a_msg_id)
        message_unpin_v1("ANIUFNawfoABSFAsdfoADsawm", a_msg_id)
        message_unpin_v1("ABI124YdAWan9d2ASNd219213091dn", a_msg_id)
        message_unpin_v1(")*@%&!)&%!@$&$", a_msg_id)
def test_invalid_message_id(test_data):
    a_data, _, _ = test_data

    a_ch_id = channels_create_v2(a_data["token"], "A channel", True)["channel_id"]
    a_msg_id = message_send_v2(a_data["token"], a_ch_id, "Pin me!")["message_id"]
    message_pin_v1(a_data["token"], a_msg_id)

    with pytest.raises(InputError):
        message_unpin_v1(a_data["token"], -1234456)
        message_unpin_v1(a_data["token"], 99999)
        message_unpin_v1(a_data["token"], "")
        message_unpin_v1(a_data["token"], "    ")
        message_unpin_v1(a_data["token"], "AHWHDHAWFJASFJA")
        message_unpin_v1(a_data["token"], "asbduafwdz")
        message_unpin_v1(a_data["token"], "DUBAWDIDAasdawdawfd")
        message_unpin_v1(a_data["token"], "9021417")
        message_unpin_v1(a_data["token"], "10(%!#*(@19402!@()$")
        message_unpin_v1(a_data["token"], "adcuiwbACWd   0d1aSDQ92d1a")
def test_auth_user_not_in_channel_dm(test_data):
    a_data, b_data, c_data = test_data

    # not member in channel
    a_ch_id = channels_create_v2(a_data["token"], "A channel", True)["channel_id"]
    a_msg_id = message_send_v2(a_data["token"], a_ch_id, "A message")["message_id"]
    message_pin_v1(a_data["token"], a_msg_id)

    with pytest.raises(AccessError):
        message_unpin_v1(b_data["token"], a_msg_id)
        message_unpin_v1(c_data["token"], a_msg_id)

    # not member in dm
    b_dm_id = dm_create_v1(b_data["token"], [a_data["auth_user_id"]])["dm_id"]
    b_msg_id = message_senddm_v1(b_data["token"], b_dm_id, "A message")["message_id"]
    message_pin_v1(b_data["token"], b_msg_id)

    with pytest.raises(AccessError):
        message_unpin_v1(c_data["token"], b_msg_id)
Esempio n. 21
0
def test_message_unpin_errors(user_setup, dm_setup, channel_setup,
                              message_setup):
    with pytest.raises(AccessError):
        message_unpin_v1(make_token(10000), 0)

    # message_id is not a valid message
    with pytest.raises(InputError):
        message_unpin_v1(make_token(0), 25)

    # Message with ID message_id is already unpinned
    with pytest.raises(InputError):
        message_unpin_v1(make_token(2), 0)

    # The authorised user is not a member of the channel or DM that the message is within
    message_pin_v1(make_token(2), 0)
    with pytest.raises(AccessError):
        message_unpin_v1(make_token(0), 0)

    # The authorised user is not an owner of the channel or DM
    with pytest.raises(AccessError):
        message_unpin_v1(make_token(3), 0)
Esempio n. 22
0
def test_channel_pin(test_data):
    a_data, b_data, c_data = test_data

    a_ch_id = channels_create_v2(a_data["token"], "A channel",
                                 True)["channel_id"]
    b_ch_id = channels_create_v2(b_data["token"], "B channel",
                                 True)["channel_id"]
    channel_join_v2(c_data["token"], a_ch_id)
    channel_join_v2(c_data["token"], b_ch_id)

    # pin own message
    a1_msg_id = message_send_v2(a_data["token"], a_ch_id,
                                "My own message")["message_id"]
    message_pin_v1(a_data["token"], a1_msg_id)

    messages = channel_messages_v2(a_data["token"], a_ch_id, 0)["messages"]

    # we know there is only one message sent, so it must be index 0 of messages

    assert messages[0]["message_id"] == a1_msg_id
    assert messages[0]["is_pinned"] == True

    # pin someone elses message
    c1_msg_id = message_send_v2(c_data["token"], a_ch_id,
                                "C's message")["message_id"]
    message_pin_v1(a_data["token"], c1_msg_id)

    messages = channel_messages_v2(a_data["token"], a_ch_id, 0)["messages"]

    # channel_messages is most recent message first
    assert messages[0]["message_id"] == c1_msg_id
    assert messages[0]["is_pinned"] == True

    # b_ch
    b1_msg_id = message_send_v2(b_data["token"], b_ch_id,
                                "B's message whoo")["message_id"]
    message_pin_v1(b_data["token"], b1_msg_id)

    messages = channel_messages_v2(b_data["token"], b_ch_id, 0)["messages"]
    assert messages[0]["message_id"] == b1_msg_id
    assert messages[0]["is_pinned"] == True

    channel_addowner_v1(b_data["token"], b_ch_id, c_data["auth_user_id"])
    c2_msg_id = message_send_v2(c_data["token"], b_ch_id,
                                "C's second message whoo")["message_id"]
    message_pin_v1(c_data["token"], c2_msg_id)

    messages = channel_messages_v2(c_data["token"], b_ch_id, 0)["messages"]
    assert messages[0]["message_id"] == c2_msg_id
    assert messages[0]["is_pinned"] == True
Esempio n. 23
0
def test_dm_pin(test_data):
    a_data, b_data, c_data = test_data

    a_dm_id = dm_create_v1(a_data["token"], [c_data["auth_user_id"]])["dm_id"]
    b_dm_id = dm_create_v1(b_data["token"], [c_data["auth_user_id"]])["dm_id"]

    # pin own message
    a1_msg_id = message_senddm_v1(a_data["token"], a_dm_id,
                                  "My own message")["message_id"]
    message_pin_v1(a_data["token"], a1_msg_id)

    messages = dm_messages_v1(a_data["token"], a_dm_id, 0)["messages"]
    assert messages[0]["message_id"] == a1_msg_id
    assert messages[0]["is_pinned"] == True

    # pin someone elses message
    c1_msg_id = message_senddm_v1(c_data["token"], a_dm_id,
                                  "C's message")["message_id"]
    message_pin_v1(a_data["token"], c1_msg_id)

    messages = dm_messages_v1(a_data["token"], a_dm_id, 0)["messages"]
    assert messages[0]["message_id"] == c1_msg_id
    assert messages[0]["is_pinned"] == True

    # b_ch
    b1_msg_id = message_senddm_v1(b_data["token"], b_dm_id,
                                  "B's message whoo")["message_id"]
    message_pin_v1(b_data["token"], b1_msg_id)

    messages = dm_messages_v1(b_data["token"], b_dm_id, 0)["messages"]
    assert messages[0]["message_id"] == b1_msg_id
    assert messages[0]["is_pinned"] == True

    c2_msg_id = message_senddm_v1(c_data["token"], b_dm_id,
                                  "C's second message whoo")["message_id"]
    message_pin_v1(b_data["token"], c2_msg_id)

    messages = dm_messages_v1(c_data["token"], b_dm_id, 0)["messages"]
    assert messages[0]["message_id"] == c2_msg_id
    assert messages[0]["is_pinned"] == True
Esempio n. 24
0
def message_pin():
    parameters = request.get_json()
    token = parameters['token']
    message_id = parameters['message_id']
    message_pin_v1(token, message_id)
    return dumps({})
Esempio n. 25
0
def test_message_pin_and_unpin(user_setup, dm_setup, channel_setup):
    message_send_v2(make_token(2), 0, "0")
    assert message_pin_v1(make_token(2), 0) == {}
    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':
                True
            },
        ],
        "start":
        0,
        "end":
        -1,
    }
    assert message_unpin_v1(make_token(2), 0) == {}
    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,
    }