Exemple #1
0
def test_search_v2_token(reg_user):
    clear_v2()
    query_str = 'x' * 200
    reg_user(0)
    fake_token = 'random values r32fecaswd'
    with pytest.raises(AccessError):
        search_v2(fake_token, query_str)
Exemple #2
0
def test_search_no_match(register_users):

    assert search_v2(make_token(0), "Ciao") == {"messages": []}

    channels_create_v2(make_token(0), "PublicChannel1", True)
    dm_create_v1(make_token(0), [1, 2])  # dm_id 0
    message_send_v2(make_token(0), 0, "Hello")
    message_senddm_v1(make_token(0), 0, "Goodbye")

    assert search_v2(make_token(0), "Ciao") == {"messages": []}
Exemple #3
0
def test_search_v2_invalid_query_str_channel():
    clear_v1()

    auth_user_1_data = auth_register_v2("*****@*****.**", "123456", "Andy",
                                        "Dandy")
    auth_user_1_token = auth_user_1_data["token"]

    channel_1_data = channels_create_v2(auth_user_1_token, "Andys channel",
                                        True)
    channels_1_id = channel_1_data["channel_id"]

    message_send_v2(auth_user_1_token, channels_1_id, "l" * 1000)

    with pytest.raises(InputError):
        search_v2(auth_user_1_token, "l" * 9999)
Exemple #4
0
def test_message_sendlaterdm_valid_case():
    clear_v1()
    user = auth_register_v2('*****@*****.**', 'pasword24323132', 'Terrence',
                            'Andrews')
    user2 = auth_register_v2('*****@*****.**', 'password1234', 'Terry',
                             'Lurr')

    dm = dm_create_v1(user['token'], [user2['auth_user_id']])
    # 3 seconds
    time = datetime.now().replace(microsecond=0) + timedelta(0, 3)
    time_sent = time.timestamp()
    # 5 seconds
    time_later = datetime.now().replace(microsecond=0) + timedelta(0, 5)
    time_sent_later = time_later.timestamp()

    def test_sent_empty(message):
        messages = search_v2(user['token'], message)
        assert messages == {'messages': []}

    # Check if messages is empty 2 seconds after the first message_sendlaterdm has been called
    timer = threading.Timer(2, test_sent_empty, args=('Hey Guys!'))
    timer.start()

    def test_sent_later_empty():
        messages = search_v2(user['token'], '2 seconds later')
        assert messages == {'messages': []}

    # Check 2nd message has been sent yet
    timer = threading.Timer(2, test_sent_later_empty)
    timer.start()

    msg = message_sendlaterdm_v1(user['token'], dm['dm_id'], "Hey Guys!",
                                 time_sent)
    msg_search = search_v2(user['token'], 'Hey Guys!')
    assert msg_search['messages'][0]['message_id'] == msg['message_id']
    assert msg_search['messages'][0]['time_created'] == time_sent

    # Second message sent
    msg_later = message_sendlaterdm_v1(user['token'], dm['dm_id'],
                                       "2 seconds later", time_sent_later)
    msg_search = search_v2(user['token'], '2 seconds later')
    assert msg_search['messages'][0]['message_id'] == msg_later['message_id']
    assert msg_search['messages'][0]['time_created'] == time_sent_later
Exemple #5
0
def test_search_v2_invalid_query_str_dm():
    clear_v1()

    auth_user_1_data = auth_register_v2("*****@*****.**", "123456", "Andy",
                                        "Dandy")
    auth_user_1_token = auth_user_1_data["token"]

    auth_user_2_data = auth_register_v2("*****@*****.**", "123456", "Bob",
                                        "Hobs")
    auth_user_2_id = auth_user_2_data["auth_user_id"]

    auth_user_3_data = auth_register_v2("*****@*****.**", "123456", "Chris",
                                        "Wiz")
    auth_user_3_id = auth_user_3_data["auth_user_id"]

    dm_1_data = dm_create_v1(auth_user_1_token,
                             [auth_user_2_id, auth_user_3_id])
    dm_id_1 = dm_1_data["dm_id"]

    message_senddm_v1(auth_user_1_token, dm_id_1, "l" * 1000)

    with pytest.raises(InputError):
        search_v2(auth_user_1_token, "l" * 9999)
Exemple #6
0
def test_search_v2_find_apples_channel(reg_user):
    clear_v2()
    query_str = 'apples'  #find messages that have the same text as this
    user_register1 = reg_user(0)
    channel_id = channels_create_v2(user_register1['token'], 'nice channel',
                                    True)['channel_id']
    message = 'i love bananas, dont like apples'
    message_2 = 'i love bananas'
    for _ in range(0, 20):
        message_send_v2(user_register1['token'], channel_id, message_2)
        message_send_v2(user_register1['token'], channel_id, message)
    messages = search_v2(user_register1['token'], query_str)['messages']
    for single_message in messages:
        assert single_message['message'] != message_2
        assert single_message['message'] == message
Exemple #7
0
def test_search_v2_non_case_sensitive_dm(reg_user):
    clear_v2()
    query_str = 'APPLES'  #find messages that have the same text as this
    user_register1 = reg_user(0)
    auth_user_id_receiver = reg_user(1)['auth_user_id']
    dm_id = dm_create_v1(user_register1['token'],
                         [auth_user_id_receiver])['dm_id']
    message = 'i love bananas, dont like apples'
    message_2 = 'i love bananas'
    for _ in range(0, 20):
        message_senddm_v1(user_register1['token'], dm_id, message_2)
        message_senddm_v1(user_register1['token'], dm_id, message)
    messages = search_v2(user_register1['token'], query_str)['messages']
    for single_message in messages:
        assert single_message['message'] != message_2
        assert single_message['message'] == message
Exemple #8
0
def test_remove_dm_with_messages(reg_user, crt_dm, send_dm):
    clear_v2()

    user = reg_user(0)
    token = user['token']
    u_id = user['auth_user_id']

    message = "Apple"

    dm_id = crt_dm(token, [u_id])['dm_id']

    send_dm(token, dm_id, message)  # Send message containing string "Apple"

    dm_remove_v1(token, dm_id)

    assert search_v2(token, message)['messages'] == []
Exemple #9
0
def test_search_v2():
    clear_v1()

    auth_user_1_data = auth_register_v2("*****@*****.**", "123456", "Andy",
                                        "Dandy")
    auth_user_1_token = auth_user_1_data["token"]
    auth_user_1_id = auth_user_1_data["auth_user_id"]

    auth_user_2_data = auth_register_v2("*****@*****.**", "123456", "Bob",
                                        "Hobs")
    auth_user_2_id = auth_user_2_data["auth_user_id"]

    auth_user_3_data = auth_register_v2("*****@*****.**", "123456", "Chris",
                                        "Wiz")
    auth_user_3_id = auth_user_3_data["auth_user_id"]

    channel_1_data = channels_create_v2(auth_user_1_token, "Andys channel",
                                        True)
    channels_1_id = channel_1_data["channel_id"]

    message_1_data = message_send_v2(auth_user_1_token, channels_1_id, "Hello")
    message_1_id = message_1_data["message_id"]

    dm_1_data = dm_create_v1(auth_user_1_token,
                             [auth_user_2_id, auth_user_3_id])
    dm_id_1 = dm_1_data["dm_id"]

    message_2_data = message_senddm_v1(auth_user_1_token, dm_id_1, "World")
    message_2_id = message_2_data["message_id"]

    search_data = search_v2(auth_user_1_token, "l")
    assert search_data["messages"][0]["message_id"] == message_1_id
    assert search_data["messages"][0]["u_id"] == auth_user_1_id
    assert search_data["messages"][0]["message"] == "Hello"
    assert search_data["messages"][1]["message_id"] == message_2_id
    assert search_data["messages"][1]["u_id"] == auth_user_1_id
    assert search_data["messages"][1]["message"] == "World"
Exemple #10
0
def search():
    parameters = request.args
    token = parameters['token']
    query_str = parameters['query_str']
    output = search_v2(token, query_str)
    return dumps(output)
Exemple #11
0
def test_search_v2_above_1000_characters(reg_user):
    clear_v2()
    query_str = 'x' * 1001
    token_1 = reg_user(0)['token']
    with pytest.raises(InputError):
        search_v2(token_1, query_str)
Exemple #12
0
def test_search_success(register_users):
    channels_create_v2(make_token(0), "PublicChannel1", True)
    dm_create_v1(make_token(0), [1, 2])  # dm_id 0
    message_send_v2(make_token(0), 0, "Hello")
    message_senddm_v1(make_token(0), 0, "Goodbye")

    assert search_v2(make_token(0), "Hello") == {
        "messages": [{
            "message_id":
            0,
            "u_id":
            0,
            "message":
            "Hello",
            "time_created":
            str(create_timestamp()),
            "channel_id":
            0,
            "dm_id":
            -1,
            "reacts": [{
                "react_id": 1,
                "u_ids": [],
                "is_this_user_reacted": False
            }],
            "is_pinned":
            False
        }]
    }

    assert search_v2(make_token(0), "Good") == {
        "messages": [{
            "message_id":
            1,
            "u_id":
            0,
            "message":
            "Goodbye",
            "time_created":
            str(create_timestamp()),
            "channel_id":
            -1,
            "dm_id":
            0,
            "reacts": [{
                "react_id": 1,
                "u_ids": [],
                "is_this_user_reacted": False
            }],
            "is_pinned":
            False
        }]
    }

    assert search_v2(make_token(0), "o") == {
        "messages": [{
            "message_id":
            0,
            "u_id":
            0,
            "message":
            "Hello",
            "time_created":
            str(create_timestamp()),
            "channel_id":
            0,
            "dm_id":
            -1,
            "reacts": [{
                "react_id": 1,
                "u_ids": [],
                "is_this_user_reacted": False
            }],
            "is_pinned":
            False
        }, {
            "message_id":
            1,
            "u_id":
            0,
            "message":
            "Goodbye",
            "time_created":
            str(create_timestamp()),
            "channel_id":
            -1,
            "dm_id":
            0,
            "reacts": [{
                "react_id": 1,
                "u_ids": [],
                "is_this_user_reacted": False
            }],
            "is_pinned":
            False
        }]
    }
    clear_v1()
Exemple #13
0
def test_invalid_tokens():
    with pytest.raises(AccessError):
        search_v2(make_token(5), "Hello")
        admin_userpermission_change_v1(make_token(5), 0, 0)
        admin_user_remove_v1(make_token(5), 1)
        notifications_get_v1(make_token(5))
def search():
    token = request.args.get('token')
    query_str = request.args.get('query_str')

    return dumps(search_v2(token, query_str))
Exemple #15
0
 def test_sent_later_empty():
     messages = search_v2(user['token'], '2 seconds later')
     assert messages == {'messages': []}
Exemple #16
0
 def test_sent_empty(message):
     messages = search_v2(user['token'], message)
     assert messages == {'messages': []}