Exemplo n.º 1
0
def test_user_is_member_of_channel_with_message_unpin(url, user_1, user_2,
                                                      user_3, user_4,
                                                      public_channel_2):
    """
    Test for user unpinning a message in a channel that they are not a member of.
    """
    msg_1 = request_message_send(url, user_2['token'],
                                 public_channel_2['channel_id'],
                                 "I am amazing!").json()
    msg_2 = request_message_send(url, user_2['token'],
                                 public_channel_2['channel_id'],
                                 "No you're not!").json()

    request_message_pin(url, user_2['token'], msg_1['message_id'])
    request_message_pin(url, user_2['token'], msg_2['message_id'])

    ret_unpinned_1 = request_message_unpin(url, user_3['token'],
                                           msg_1['message_id'])
    ret_unpinned_2 = request_message_unpin(url, user_4['token'],
                                           msg_2['message_id'])

    assert ret_unpinned_1.status_code == AccessError.code
    assert ret_unpinned_2.status_code == AccessError.code

    requests.delete(url + '/clear')
Exemplo n.º 2
0
def test_valid_message_id(url, user_1, default_message, public_channel_1):
    """
    Test whether the message_id is a valid id.
    """
    ret_pinned = request_message_pin(url, user_1['token'],
                                     default_message['message_id'] + 1)
    assert ret_pinned.status_code == InputError.code

    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Hello World!").json()

    ret_pinned_1 = request_message_pin(url, user_1['token'],
                                       msg_1['message_id'] - 2)
    assert ret_pinned_1.status_code == InputError.code

    msg_2 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Now Way!?").json()

    ret_pinned_2 = request_message_pin(url, user_1['token'],
                                       msg_2['message_id'] + 100)
    assert ret_pinned_2.status_code == InputError.code

    requests.delete(url + '/clear')
Exemplo n.º 3
0
def test_authorised_to_pin(url, user_1, default_message, logout_user_1):
    """
    Test for a logged out user trying to pin a message.
    """
    ret_pinned = request_message_pin(url, user_1['token'],
                                     default_message['message_id'])
    assert ret_pinned.status_code == AccessError.code

    requests.delete(url + '/clear')
Exemplo n.º 4
0
def test_authorised_to_unpin(url, user_1, public_channel_1):
    """
    Test for a logged out user trying to unpin a message.
    """
    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "I am amazing!").json()
    request_message_pin(url, user_1['token'], msg_1['message_id'])

    requests.post(f"{url}/auth/logout", json={
        'token': user_1['token'],
    }).json()

    ret_unpinned = request_message_unpin(url, user_1['token'],
                                         msg_1['message_id'])
    assert ret_unpinned.status_code == AccessError.code

    requests.delete(url + '/clear')
Exemplo n.º 5
0
def test_unpin_other_messages(url, user_1, user_2, user_3, public_channel_2):
    """
    Test for unpinning other user's messages.
    """
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_1['token'],
                      'channel_id': public_channel_2['channel_id']
                  })
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_3['token'],
                      'channel_id': public_channel_2['channel_id']
                  })

    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_2['channel_id'],
                                 "Hello World!").json()
    msg_2 = request_message_send(url, user_1['token'],
                                 public_channel_2['channel_id'], "Hi").json()
    msg_3 = request_message_send(url, user_3['token'],
                                 public_channel_2['channel_id'],
                                 "What?!").json()
    msg_4 = request_message_send(url, user_3['token'],
                                 public_channel_2['channel_id'],
                                 "1521 Comp!").json()

    request_message_pin(url, user_2['token'], msg_1['message_id'])
    request_message_pin(url, user_2['token'], msg_2['message_id'])
    request_message_pin(url, user_2['token'], msg_3['message_id'])
    request_message_pin(url, user_2['token'], msg_4['message_id'])

    request_message_unpin(url, user_2['token'], msg_1['message_id'])
    request_message_unpin(url, user_2['token'], msg_3['message_id'])
    request_message_unpin(url, user_2['token'], msg_4['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_1['token'],
                                    'channel_id':
                                    public_channel_2['channel_id'],
                                    'start': 0,
                                }).json()

    count_msg_unpinned = 0
    for curr_message in message_list['messages']:
        if not curr_message['is_pinned'] and (curr_message['message'] in [
                'Hello World!', 'What?!', "1521 Comp!"
        ]):
            count_msg_unpinned += 1

    assert count_msg_unpinned == 3

    requests.delete(url + '/clear')
Exemplo n.º 6
0
def test_non_owner_unpin(url, user_1, user_2, public_channel_1):
    """
    Test for a user who is not an owner of the channel, unpinning a message.
    """
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_2['token'],
                      'channel_id': public_channel_1['channel_id']
                  })

    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Hello World!").json()
    request_message_pin(url, user_1['token'], msg_1['message_id'])

    ret_unpinned = request_message_unpin(url, user_2['token'],
                                         msg_1['message_id'])
    assert ret_unpinned.status_code == AccessError.code

    requests.delete(url + '/clear')
Exemplo n.º 7
0
def test_already_pinned(url, user_1, user_2, public_channel_1):
    """
    Test for pinning an already pinned message.
    """
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_1['token'],
                      'channel_id': public_channel_1['channel_id']
                  })

    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Hello World!").json()
    request_message_send(url, user_1['token'], public_channel_1['channel_id'],
                         "Now Way!?").json()

    request_message_pin(url, user_1['token'], msg_1['message_id'])
    ret_pinned = request_message_pin(url, user_1['token'], msg_1['message_id'])
    assert ret_pinned.status_code == InputError.code

    requests.delete(url + '/clear')
Exemplo n.º 8
0
def test_added_owner_can_unpin(url, user_1, user_2, public_channel_1):
    """
    Test for unpinning messages from a recently added owner.
    """
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_2['token'],
                      'channel_id': public_channel_1['channel_id']
                  })

    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Hello World!").json()
    msg_2 = request_message_send(url, user_2['token'],
                                 public_channel_1['channel_id'], "Hi").json()
    request_message_pin(url, user_1['token'], msg_1['message_id'])
    request_message_pin(url, user_1['token'], msg_2['message_id'])

    requests.post(f"{url}/channel/addowner",
                  json={
                      'token': user_1['token'],
                      'channel_id': public_channel_1['channel_id'],
                      'u_id': user_2['u_id'],
                  }).json()

    request_message_unpin(url, user_2['token'], msg_2['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_2['token'],
                                    'channel_id':
                                    public_channel_1['channel_id'],
                                    'start': 0,
                                }).json()

    for curr_message in message_list['messages']:
        if curr_message['message_id'] == msg_2['message_id']:
            assert not curr_message['is_pinned']

    requests.delete(url + '/clear')
Exemplo n.º 9
0
def test_pin_correct_message(url, user_1, user_2, public_channel_1):
    """
    Test for pinning the correct message.
    """
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_2['token'],
                      'channel_id': public_channel_1['channel_id']
                  })

    request_message_send(url, user_1['token'], public_channel_1['channel_id'],
                         "Hello World!").json()
    msg_2 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'], "Hi").json()
    msg_3 = request_message_send(url, user_2['token'],
                                 public_channel_1['channel_id'],
                                 "What?!").json()
    request_message_send(url, user_2['token'], public_channel_1['channel_id'],
                         "1521 Comp!").json()

    request_message_pin(url, user_1['token'], msg_2['message_id'])
    request_message_pin(url, user_1['token'], msg_3['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_2['token'],
                                    'channel_id':
                                    public_channel_1['channel_id'],
                                    'start': 0,
                                }).json()

    count_msg_pinned = 0
    for curr_message in message_list['messages']:
        if curr_message['is_pinned'] and (curr_message['message']
                                          in ['Hi', 'What?!']):
            count_msg_pinned += 1

    assert count_msg_pinned == 2

    requests.delete(url + '/clear')
Exemplo n.º 10
0
def test_pin_owned_message(url, user_1, public_channel_1):
    """
    Test for pinning the user's own messages.
    """
    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Hello World!").json()
    request_message_pin(url, user_1['token'], msg_1['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_1['token'],
                                    'channel_id':
                                    public_channel_1['channel_id'],
                                    'start': 0,
                                }).json()

    for curr_message in message_list['messages']:
        if curr_message['message_id'] == msg_1['message_id']:
            assert curr_message['is_pinned']

    requests.delete(url + '/clear')
Exemplo n.º 11
0
def test_flockr_owner_unpin_msg_in_nonmember_channels(url, user_1, user_2,
                                                      private_channel_2):
    """
    (Assumption Testing) Test for the ability of flockr owner to unpin messages in channels that
    they are not a part of.
    (Assumption) First user to register is flockr owner.
    """
    request_message_send(url, user_2['token'], private_channel_2['channel_id'],
                         "I").json()
    msg_2 = request_message_send(url, user_2['token'],
                                 private_channel_2['channel_id'], "Am").json()
    msg_3 = request_message_send(url, user_2['token'],
                                 private_channel_2['channel_id'],
                                 "Insane").json()

    request_message_pin(url, user_1['token'], msg_2['message_id'])
    request_message_pin(url, user_1['token'], msg_3['message_id'])

    request_message_unpin(url, user_1['token'], msg_3['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_2['token'],
                                    'channel_id':
                                    private_channel_2['channel_id'],
                                    'start': 0,
                                }).json()

    count_msg_pinned = 0
    for curr_message in message_list['messages']:
        if not curr_message['is_pinned'] and (curr_message['message']
                                              in ['I', "Insane"]):
            count_msg_pinned += 1

    assert count_msg_pinned == 2

    requests.delete(url + '/clear')
Exemplo n.º 12
0
def test_unpin_in_private_channel(url, user_1, user_2, private_channel_1):
    """
    Test for unpinning messages in private channels.
    """
    requests.post(f"{url}/channel/invite",
                  json={
                      'token': user_1['token'],
                      'channel_id': private_channel_1['channel_id'],
                      'u_id': user_2['u_id'],
                  }).json()

    msg_1 = request_message_send(url, user_1['token'],
                                 private_channel_1['channel_id'],
                                 "Become").json()
    msg_2 = request_message_send(url, user_2['token'],
                                 private_channel_1['channel_id'], "A").json()
    msg_3 = request_message_send(url, user_2['token'],
                                 private_channel_1['channel_id'],
                                 "Hero").json()

    request_message_pin(url, user_1['token'], msg_1['message_id'])
    request_message_pin(url, user_1['token'], msg_2['message_id'])
    request_message_pin(url, user_1['token'], msg_3['message_id'])

    request_message_unpin(url, user_1['token'], msg_2['message_id'])
    request_message_unpin(url, user_1['token'], msg_3['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_1['token'],
                                    'channel_id':
                                    private_channel_1['channel_id'],
                                    'start': 0,
                                }).json()

    count_msg_unpinned = 0
    for curr_message in message_list['messages']:
        if not curr_message['is_pinned'] and (curr_message['message']
                                              in ['A', "Hero"]):
            count_msg_unpinned += 1

    assert count_msg_unpinned == 2

    requests.delete(url + '/clear')
Exemplo n.º 13
0
def test_unpin_multiple_messages(url, user_1, user_2, user_3, user_4,
                                 public_channel_3):
    """
    Test for unpinning multiple different messages.
    """
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_1['token'],
                      'channel_id': public_channel_3['channel_id']
                  })
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_2['token'],
                      'channel_id': public_channel_3['channel_id']
                  })
    requests.post(f"{url}/channel/join",
                  json={
                      'token': user_4['token'],
                      'channel_id': public_channel_3['channel_id']
                  })

    requests.post(f"{url}/channel/addowner",
                  json={
                      'token': user_3['token'],
                      'channel_id': public_channel_3['channel_id'],
                      'u_id': user_4['u_id'],
                  }).json()

    msg_1 = request_message_send(url, user_1['token'],
                                 public_channel_3['channel_id'],
                                 "Intelligence").json()
    msg_2 = request_message_send(url, user_2['token'],
                                 public_channel_3['channel_id'], "Is").json()
    msg_3 = request_message_send(url, user_2['token'],
                                 public_channel_3['channel_id'], "The").json()
    request_message_send(url, user_3['token'], public_channel_3['channel_id'],
                         "Ability").json()
    msg_5 = request_message_send(url, user_3['token'],
                                 public_channel_3['channel_id'],
                                 "To Adapt").json()
    msg_6 = request_message_send(url, user_3['token'],
                                 public_channel_3['channel_id'], "To").json()
    msg_7 = request_message_send(url, user_4['token'],
                                 public_channel_3['channel_id'],
                                 "Change").json()

    request_message_pin(url, user_3['token'], msg_1['message_id'])
    request_message_pin(url, user_3['token'], msg_2['message_id'])
    request_message_pin(url, user_4['token'], msg_3['message_id'])
    request_message_pin(url, user_4['token'], msg_5['message_id'])
    request_message_pin(url, user_4['token'], msg_6['message_id'])
    request_message_pin(url, user_4['token'], msg_7['message_id'])

    request_message_unpin(url, user_4['token'], msg_1['message_id'])
    request_message_unpin(url, user_4['token'], msg_2['message_id'])
    request_message_unpin(url, user_3['token'], msg_3['message_id'])
    request_message_unpin(url, user_4['token'], msg_5['message_id'])
    request_message_unpin(url, user_4['token'], msg_7['message_id'])

    message_list = requests.get(f"{url}/channel/messages",
                                params={
                                    'token': user_1['token'],
                                    'channel_id':
                                    public_channel_3['channel_id'],
                                    'start': 0,
                                }).json()

    count_msg_unpinned = 0
    for curr_message in message_list['messages']:
        if not curr_message['is_pinned'] and (curr_message['message'] in [
                'Intelligence', 'Is', "The", "Ability", "To Adapt", "Change"
        ]):
            count_msg_unpinned += 1

    assert count_msg_unpinned == 6

    requests.delete(url + '/clear')