Пример #1
0
def test_valid_message_id_unpin(url, user_1, default_message,
                                public_channel_1):
    """
    Test whether the message_id is a valid id.
    """
    request_message_pin(url, user_1['token'], default_message['message_id'])
    ret_unpinned = request_message_unpin(url, user_1['token'],
                                         default_message['message_id'] + 1)

    assert ret_unpinned.status_code == InputError.code

    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_1 = request_message_unpin(url, user_1['token'],
                                           msg_1['message_id'] - 2)
    assert ret_unpinned_1.status_code == InputError.code

    msg_2 = request_message_send(url, user_1['token'],
                                 public_channel_1['channel_id'],
                                 "Now Way!?").json()
    request_message_pin(url, user_1['token'], msg_2['message_id'])
    ret_unpinned_2 = request_message_pin(url, user_1['token'],
                                         msg_2['message_id'] + 100)
    assert ret_unpinned_2.status_code == InputError.code

    requests.delete(url + '/clear')
def test_unreact_correct_message_thumbsdown(url, user_1, user_2, public_channel_1):
    """
    Basic test for unreacting a react_id in 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'], "Hola").json()
    msg_2 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Mate").json()

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

    request_message_unreact(url, user_2['token'], msg_2['message_id'], THUMBS_DOWN)

    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_unreacted_1 = 0
    for curr_message in message_list['messages']:
        for react in curr_message['reacts']:
            if react['react_id'] == THUMBS_DOWN:
                if user_2['u_id'] not in react['u_ids'] and (curr_message['message'] == 'Mate'):
                    count_msg_unreacted_1 += 1
    assert count_msg_unreacted_1 == 1

    requests.delete(url + '/clear')
Пример #3
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')
Пример #4
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')
def test_unreact_in_private_channel(url, user_1, user_2, user_3, private_channel_2):
    """
    Test for unreacting in a private channel.
    """
    requests.post(f"{url}/channel/invite", json={
        'token': user_2['token'],
        'channel_id': private_channel_2['channel_id'],
        'u_id': user_3['u_id'],
    })

    msg_1 = request_message_send(url, user_2['token'], private_channel_2['channel_id'], "Be right back").json()

    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP)
    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN)

    request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN)

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

    for curr_message in message_list['messages']:
        for react in curr_message['reacts']:
            if react['react_id'] == THUMBS_UP:
                assert user_3['u_id'] not in react['u_ids']
            elif react['react_id'] == THUMBS_DOWN:
                assert user_3['u_id'] not in react['u_ids']

    requests.delete(url + '/clear')
def test_search_not_in_channel(url, user_1, user_2, public_channel_1):
    """Test searching messages when the user has not been part of the channel before
    """
    query_str = "ZzZ"

    request_message_send(url, user_2['token'], public_channel_1['channel_id'],
                         query_str)

    msg_list = requests.get(f'{url}/search',
                            params={
                                'token': user_1['token'],
                                'query_str': query_str,
                            }).json()

    assert len(msg_list['messages']) == 0
    requests.delete(url + '/clear')
def test_flockr_owner_unreact_messages(url, user_1, user_2, public_channel_2):
    """
    (Assumption Test) Test for a flockr owner unreacting a react_id in a message from 
    outside the channel.
    """
    requests.post(f"{url}/channel/join", json={
        'token': user_1['token'],
        'channel_id': public_channel_2['channel_id']
    })

    msg_1 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hola").json()

    request_message_react(url, user_1, msg_1['message_id'], THUMBS_DOWN)

    requests.post(f"{url}/channel/leave", json={
        'token': user_1['token'],
        'channel_id': public_channel_2['channel_id']
    })

    request_message_unreact(url, user_1, msg_1['message_id'], THUMBS_DOWN)

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

    for curr_message in message_list['messages']:
        for react in curr_message['reacts']:
            if react['react_id'] == THUMBS_UP:
                assert user_1['u_id'] not in react['u_ids']
            elif react['react_id'] == THUMBS_DOWN:
                assert user_1['u_id'] not in react['u_ids']

    requests.delete(url + '/clear')
def test_unreact_multiple_messages(url, user_1, user_2, user_3, public_channel_2):
    """
    Test for unreacting multiple 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'], "Hola").json()
    msg_2 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Mate").json()
    request_message_send(url, user_1['token'], public_channel_2['channel_id'], "Hi").json()
    msg_4 = request_message_send(url, user_1['token'], public_channel_2['channel_id'], "What?").json()
    msg_5 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "OKAY").json()
    msg_6 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "I").json()
    msg_7 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "Am").json()
    msg_8 = request_message_send(url, user_2['token'], public_channel_2['channel_id'], "Good").json()

    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP)
    request_message_react(url, user_3['token'], msg_2['message_id'], THUMBS_UP)
    request_message_react(url, user_3['token'], msg_4['message_id'], THUMBS_UP)
    request_message_react(url, user_3['token'], msg_5['message_id'], THUMBS_UP)
    request_message_react(url, user_3['token'], msg_6['message_id'], THUMBS_UP)
    request_message_react(url, user_3['token'], msg_7['message_id'], THUMBS_DOWN)
    request_message_react(url, user_3['token'], msg_8['message_id'], THUMBS_DOWN)

    request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_UP)
    request_message_unreact(url, user_3['token'], msg_4['message_id'], THUMBS_UP)
    request_message_unreact(url, user_3['token'], msg_5['message_id'], THUMBS_UP)
    request_message_unreact(url, user_3['token'], msg_6['message_id'], THUMBS_UP)
    request_message_unreact(url, user_3['token'], msg_8['message_id'], THUMBS_DOWN)

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

    count_msg_unreacted_1 = 0
    for curr_message in message_list['messages']:
        for react in curr_message['reacts']:
            if react['react_id'] in (THUMBS_UP, THUMBS_DOWN):
                if user_3['u_id'] not in react['u_ids']:
                    count_msg_unreacted_1 += 1
    # Each message has 2 react options, and there should be a total of 13 non-active reacts for user_3.
    assert count_msg_unreacted_1 == 14
    
    requests.delete(url + '/clear')
def test_search_no_match(url, user_1, public_channel_1):
    """Test searching messages with 0 results
    """
    msg_str_1 = "Welcome to group 1!"
    query_str = "ZzZ"

    request_message_send(url, user_1['token'], public_channel_1['channel_id'],
                         msg_str_1)

    msg_list = requests.get(f'{url}/search',
                            params={
                                'token': user_1['token'],
                                'query_str': query_str,
                            }).json()

    assert len(msg_list['messages']) == 0
    requests.delete(url + '/clear')
Пример #10
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')
def test_message_already_unreacted(url, user_1, user_2, public_channel_1):
    """
    Test for unreacting to a message that is already unreacted to.
    """
    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").json()
    msg_2 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Hola").json()
    request_message_react(url, user_2['token'], msg_2['message_id'], THUMBS_UP)

    ret_unreact_1 = request_message_unreact(url, user_2['token'], msg_1['message_id'], THUMBS_UP)
    assert ret_unreact_1.status_code == InputError.code
    ret_unreact_2 = request_message_unreact(url, user_2['token'], msg_2['message_id'], THUMBS_DOWN)
    assert ret_unreact_2.status_code == InputError.code

    requests.delete(url + '/clear')
def test_search_leave_channel(url, user_1, public_channel_1):
    """Test searching messages when user has left channel the channel
    """
    query_str = "ZzZ"
    request_message_send(url, user_1['token'], public_channel_1['channel_id'],
                         query_str)
    requests.post(f'{url}/channel/leave',
                  json={
                      'token': user_1['token'],
                      'channel_id': public_channel_1['channel_id']
                  })

    msg_list = requests.get(f'{url}/search',
                            params={
                                'token': user_1['token'],
                                'query_str': query_str,
                            }).json()

    assert len(msg_list['messages']) == 0
    requests.delete(url + '/clear')
Пример #13
0
def test_non_owner_pin(url, user_1, user_2, public_channel_1):
    """
    Test for a user who is not an owner of the channel, pinning 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_send(url, user_2['token'], public_channel_1['channel_id'],
                         "Now Way!?").json()

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

    requests.delete(url + '/clear')
Пример #14
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')
Пример #15
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')
def test_unreact_owned_messages(url, user_1, user_2, public_channel_1):
    """
    Test for unreacting owned messages.
    """
    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'], "Hola").json()
    msg_2 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Mate").json()
    msg_3 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "Hi").json()
    msg_4 = request_message_send(url, user_2['token'], public_channel_1['channel_id'], "What?").json()

    request_message_react(url, user_2['token'], msg_2['message_id'], THUMBS_UP)
    request_message_react(url, user_2['token'], msg_3['message_id'], THUMBS_UP)
    request_message_react(url, user_2['token'], msg_4['message_id'], THUMBS_UP)
    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP)

    request_message_unreact(url, user_2['token'], msg_2['message_id'], THUMBS_UP)
    request_message_unreact(url, user_2['token'], msg_3['message_id'], THUMBS_UP)

    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_unreacted_1 = 0
    for curr_message in message_list['messages']:
        for react in curr_message['reacts']:
            if react['react_id'] == THUMBS_UP:
                if user_2['u_id'] not in react['u_ids'] and (curr_message['message'] in [
                    'Hola', 'Hi', 'Mate'
                    ]):
                    count_msg_unreacted_1 += 1
    assert count_msg_unreacted_1 == 3

    requests.delete(url + '/clear')
Пример #17
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')
def test_authorised_to_unreact(url, user_1, public_channel_1):
    """
    Test for logged out user trying to unreact to a message.
    """
    msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json()
    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP)

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

    ret_unreact = request_message_unreact(url, user_1['token'], msg_1['message_id'], THUMBS_UP)
    assert ret_unreact.status_code == AccessError.code
    
    requests.delete(url + '/clear')
def test_valid_message_id_unreact(url, user_1, public_channel_1):
    """
    Test if the message exists or not.
    """
    msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json()
    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP)

    ret_unreact_1 = request_message_unreact(url, user_1['token'], msg_1['message_id'] + 1, THUMBS_UP)
    assert ret_unreact_1.status_code == InputError.code
    ret_unreact_2 = request_message_unreact(url, user_1['token'], msg_1['message_id'] - 1, THUMBS_UP)
    assert ret_unreact_2.status_code == InputError.code
    ret_unreact_3 = request_message_unreact(url, user_1['token'], msg_1['message_id'] + 500, THUMBS_UP)
    assert ret_unreact_3.status_code == InputError.code

    requests.delete(url + '/clear')
def test_valid_react_id_unreact(url, user_1, public_channel_1):
    """
    Test if the specific react exists.
    """
    msg_1 = request_message_send(url, user_1['token'], public_channel_1['channel_id'], "Hello").json()
    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP)

    ret_unreact_1 = request_message_unreact(url, user_1['token'], msg_1['message_id'], 3)
    assert ret_unreact_1.status_code == InputError.code
    ret_unreact_2 = request_message_unreact(url, user_1['token'], msg_1['message_id'], -1)
    assert ret_unreact_2.status_code == InputError.code
    ret_unreact_3 = request_message_unreact(url, user_1['token'], msg_1['message_id'], -13)
    assert ret_unreact_3.status_code == InputError.code
    ret_unreact_4 = request_message_unreact(url, user_1['token'], msg_1['message_id'], 21)
    assert ret_unreact_4.status_code == InputError.code

    requests.delete(url + '/clear')
Пример #21
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')
def test_unreact_latest_reacts_from_message(url, user_1, user_2, user_3, public_channel_1):
    """
    Test for unreacting latest react from the same message.
    """
    requests.post(f"{url}/channel/join", json={
        'token': user_2['token'],
        'channel_id': public_channel_1['channel_id']
    })
    requests.post(f"{url}/channel/join", json={
        'token': user_3['token'],
        'channel_id': public_channel_1['channel_id']
    })

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

    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_UP)
    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_UP)
    request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP)

    request_message_unreact(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_UP)

    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']:
        for react in curr_message['reacts']:
            if react['react_id'] == THUMBS_UP:
                assert user_1['u_id'] not in react['u_ids']
                assert user_2['u_id'] not in react['u_ids']
                assert user_3['u_id'] not in react['u_ids']
            elif react['react_id'] == THUMBS_DOWN:
                assert user_1['u_id'] in react['u_ids']
                assert user_2['u_id'] not in react['u_ids']
                assert user_3['u_id'] not in react['u_ids']

    requests.delete(url + '/clear')
def test_nonmember_unreact(url, user_2, user_3, public_channel_2):
    """
    Test for users outside of the channel that the message is in trying to unreact that message.
    """
    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_2['token'], public_channel_2['channel_id'], "Hello").json()
    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_UP)

    requests.post(f"{url}/channel/leave", json={
        'token': user_3['token'],
        'channel_id': public_channel_2['channel_id']
    })

    ret_unreact = request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_UP)
    assert ret_unreact.status_code == AccessError.code
    
    requests.delete(url + '/clear')
Пример #24
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')
def test_unreact_same_react_from_different_users(url, user_1, user_2, user_3, public_channel_1):
    """
    Test for unreacting the same react from a message from multiple users (thumbs down).
    """
    requests.post(f"{url}/channel/join", json={
        'token': user_2['token'],
        'channel_id': public_channel_1['channel_id']
    })
    requests.post(f"{url}/channel/join", json={
        'token': user_3['token'],
        'channel_id': public_channel_1['channel_id']
    })

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

    request_message_react(url, user_1['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_react(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_react(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN)

    request_message_unreact(url, user_1['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_unreact(url, user_2['token'], msg_1['message_id'], THUMBS_DOWN)
    request_message_unreact(url, user_3['token'], msg_1['message_id'], THUMBS_DOWN)

    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']:
        for react in curr_message['reacts']:
            if react['react_id'] == THUMBS_DOWN:
                assert user_1['u_id'] not in react['u_ids']
                assert user_2['u_id'] not in react['u_ids']
                assert user_3['u_id'] not in react['u_ids']

    requests.delete(url + '/clear')
Пример #26
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')
def test_search_standard(url, user_1, user_2, user_3, user_4, public_channel_1,
                         public_channel_2, public_channel_3, public_channel_4):
    """Test searching messages in multiple channels
    """
    msg_str_1 = "Welcome to group 1!"
    msg_str_2 = "Welcome to group 2!"
    msg_str_3 = "Welcome to group 3!"
    msg_str_4 = "Welcome to group 4!"
    msg_str_5 = "Hiya guys!"
    msg_str_6 = "sup"
    msg_str_7 = "Let's get down to business!"
    query_str = "Welcome"

    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_1['token'],
                      'channel_id': public_channel_3['channel_id']
                  })

    requests.post(f'{url}/channel/join',
                  json={
                      'token': user_1['token'],
                      'channel_id': public_channel_4['channel_id']
                  })

    request_message_send(url, user_1['token'], public_channel_1['channel_id'],
                         msg_str_1)
    request_message_send(url, user_2['token'], public_channel_2['channel_id'],
                         msg_str_2)
    request_message_send(url, user_3['token'], public_channel_3['channel_id'],
                         msg_str_3)
    request_message_send(url, user_4['token'], public_channel_4['channel_id'],
                         msg_str_4)
    request_message_send(url, user_1['token'], public_channel_1['channel_id'],
                         msg_str_5)
    request_message_send(url, user_2['token'], public_channel_2['channel_id'],
                         msg_str_6)
    request_message_send(url, user_3['token'], public_channel_3['channel_id'],
                         msg_str_7)

    msg_list = requests.get(f'{url}/search',
                            params={
                                'token': user_1['token'],
                                'query_str': query_str,
                            }).json()

    msg_count = 0
    msg_cmp_2 = []
    for msg in msg_list['messages']:
        msg_cmp_2.append(msg['message'])
        msg_count += 1
    assert msg_count == 4
    msg_cmp_1 = [msg_str_1, msg_str_2, msg_str_3, msg_str_4]
    msg_cmp_1.sort()
    msg_cmp_2.sort()
    assert msg_cmp_1 == msg_cmp_2
    requests.delete(url + '/clear')
Пример #28
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')