Пример #1
0
def test_empty_dreams(reg_user, utilization):
    clear_v2()

    token = reg_user(0)['token']

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 0
    assert len(users_stats['dms_exist']) == 0
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(0, 1)
Пример #2
0
def test_single_user_single_channel_full_util(reg_user, crt_channel,
                                              utilization):
    clear_v2()

    token = reg_user(0)['token']

    crt_channel(token)

    users_stats = users_stats_v1(token)['dreams_stats']

    assert users_stats['channels_exist'][-1]['num_channels_exist'] == 1
    assert len(users_stats['dms_exist']) == 0
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(1, 1)
Пример #3
0
def test_multi_user_no_channels(reg_user, utilization):
    clear_v2()

    token = reg_user(0)['token']

    user_count = 10
    for i in range(1, user_count):
        reg_user(i)

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 0
    assert len(users_stats['dms_exist']) == 0
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(0, user_count)
Пример #4
0
def test_single_user_single_dm_full_util(reg_user, crt_dm, utilization):
    clear_v2()

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

    crt_dm(token, [user_id])

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 0
    assert users_stats['dms_exist'][-1]['num_dms_exist'] == 1
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(1, 1)
def test_initial(test_data):
    a_data, _, _ = test_data
    time_stamp = datetime.now().replace(microsecond=0).timestamp()

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["channels_exist"][0]["num_channels_exist"] == 0
    assert abs(dreams_stats["channels_exist"][0]["time_stamp"] -
               time_stamp) <= 1

    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] - time_stamp) <= 1

    assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0
    assert abs(dreams_stats["messages_exist"][0]["time_stamp"] -
               time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 0
Пример #6
0
def test_single_channel_multi_message(reg_user, crt_channel, send_msg,
                                      utilization):
    clear_v2()

    token = reg_user(0)['token']

    channel_id = crt_channel(token)['channel_id']

    msg_count = 10
    for _ in range(msg_count):
        send_msg(token, channel_id)

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 1
    assert len(users_stats['dms_exist']) == 0
    assert users_stats['messages_exist'][-1]['num_messages_exist'] == msg_count
    assert users_stats['utilization_rate'] == utilization(1, 1)
Пример #7
0
def test_singe_dm_multi_message(reg_user, crt_dm, send_dm, utilization):
    clear_v2()

    user = reg_user(0)
    token = user['token']
    user_id = user['auth_user_id']
    dm_id = crt_dm(token, [user_id])['dm_id']

    msg_count = 10
    for _ in range(msg_count):
        send_dm(token, dm_id)

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 0
    assert len(users_stats['dms_exist']) == 1
    assert users_stats['messages_exist'][-1]['num_messages_exist'] == msg_count
    assert users_stats['utilization_rate'] == utilization(1, 1)
Пример #8
0
def test_multi_user_full_channel_util(reg_user, crt_channel, utilization):
    clear_v2()

    token = reg_user(0)['token']
    crt_channel(token)

    user_count = 10
    for i in range(1, user_count):
        user_token = reg_user(i)['token']
        crt_channel(user_token)

    users_stats = users_stats_v1(token)['dreams_stats']

    assert users_stats['channels_exist'][-1][
        'num_channels_exist'] == user_count
    assert len(users_stats['dms_exist']) == 0
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(
        user_count, user_count)
Пример #9
0
def test_partial_util_dms(reg_user, crt_dm, utilization):
    clear_v2()

    token = reg_user(0)['token']

    user_count = 10
    for i in range(1, user_count):
        new_user = reg_user(i)
        new_user_token = new_user['token']
        new_user_id = new_user['auth_user_id']
        if i % 2 == 0:  # Only half of the users create channels
            crt_dm(new_user_token, [new_user_id])

    dm_count = int(user_count / 2 - 0.5)  # Half of user count

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 0
    assert users_stats['dms_exist'][-1]['num_dms_exist'] == dm_count
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(dm_count, user_count)
Пример #10
0
def test_multi_user_full_dm_util(reg_user, crt_dm, utilization):
    clear_v2()

    user = reg_user(0)
    token = user['token']
    user_id = user['auth_user_id']
    crt_dm(token, [user_id])

    dm_count = 10
    for i in range(1, dm_count):
        new_user = reg_user(i)
        new_user_token = new_user['token']
        new_user_id = new_user['auth_user_id']
        crt_dm(new_user_token, [new_user_id])

    users_stats = users_stats_v1(token)['dreams_stats']

    assert len(users_stats['channels_exist']) == 0
    assert users_stats['dms_exist'][-1]['num_dms_exist'] == dm_count
    assert len(users_stats['messages_exist']) == 0
    assert users_stats['utilization_rate'] == utilization(dm_count, dm_count)
Пример #11
0
def dreams_stats():
    parameters = request.args
    token = parameters['token']
    output = users_stats_v1(token)
    return dumps(output)
def test_channels(test_data):
    a_data, b_data, c_data = test_data
    init_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    sleep(1)

    a_ch_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    channels_create_v2(a_data["token"], "A channel", True)
    sleep(1)

    #check that the time difference is between one second
    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["channels_exist"][0]["num_channels_exist"] == 0
    assert abs(dreams_stats["channels_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["channels_exist"][1]["num_channels_exist"] == 1
    assert abs(dreams_stats["channels_exist"][1]["time_stamp"] -
               a_ch_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 0.33

    b_ch_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    channels_create_v2(b_data["token"], "B channel", True)
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["channels_exist"][0]["num_channels_exist"] == 0
    assert abs(dreams_stats["channels_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["channels_exist"][1]["num_channels_exist"] == 1
    assert abs(dreams_stats["channels_exist"][1]["time_stamp"] -
               a_ch_time_stamp) <= 1

    assert dreams_stats["channels_exist"][2]["num_channels_exist"] == 2
    assert abs(dreams_stats["channels_exist"][2]["time_stamp"] -
               b_ch_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 0.67

    c_ch_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    channels_create_v2(c_data["token"], "C channel", True)
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["channels_exist"][0]["num_channels_exist"] == 0
    assert abs(dreams_stats["channels_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["channels_exist"][1]["num_channels_exist"] == 1
    assert abs(dreams_stats["channels_exist"][1]["time_stamp"] -
               a_ch_time_stamp) <= 1

    assert dreams_stats["channels_exist"][2]["num_channels_exist"] == 2
    assert abs(dreams_stats["channels_exist"][2]["time_stamp"] -
               b_ch_time_stamp) <= 1

    assert dreams_stats["channels_exist"][3]["num_channels_exist"] == 3
    assert abs(dreams_stats["channels_exist"][3]["time_stamp"] -
               c_ch_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 1
def test_invalid_token(test_data):
    a_data, b_data, c_data = test_data

    channels_create_v2(a_data["token"], "A channel", True)["channel_id"]
    dm_create_v1(a_data["token"],
                 [b_data["auth_user_id"], c_data["auth_user_id"]])

    with pytest.raises(AccessError):
        users_stats_v1("")
        users_stats_v1(0)
        users_stats_v1(999328)
        users_stats_v1(-42)
        users_stats_v1("5912381")
        users_stats_v1("invalid.token.10586")
        users_stats_v1("bytasdoawqeawqdqafwa")
        users_stats_v1("ADWNUASMfaaAWwm")
        users_stats_v1("ASUIdb21d9ADsDi21")
        users_stats_v1("!)(%&@!*%#!$")
        users_stats_v1("        ")
def test_messages(test_data):
    a_data, b_data, c_data = test_data
    init_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    sleep(1)

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

    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_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    message_send_v2(a_data["token"], a_ch_id, "A message")
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0
    assert abs(dreams_stats["messages_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1
    assert abs(dreams_stats["messages_exist"][1]["time_stamp"] -
               a_msg_time_stamp) <= 1

    b_msg_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    delete_msg_id = message_send_v2(b_data["token"], a_ch_id,
                                    "A message")["message_id"]
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0
    assert abs(dreams_stats["messages_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1
    assert abs(dreams_stats["messages_exist"][1]["time_stamp"] -
               a_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2
    assert abs(dreams_stats["messages_exist"][2]["time_stamp"] -
               b_msg_time_stamp) <= 1

    b_msgdm_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    share_msg_id = message_senddm_v1(b_data["token"], a_dm_id,
                                     "A message")["message_id"]
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0
    assert abs(dreams_stats["messages_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1
    assert abs(dreams_stats["messages_exist"][1]["time_stamp"] -
               a_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2
    assert abs(dreams_stats["messages_exist"][2]["time_stamp"] -
               b_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][3]["num_messages_exist"] == 3
    assert abs(dreams_stats["messages_exist"][3]["time_stamp"] -
               b_msgdm_time_stamp) <= 1

    c_share_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    message_share_v1(c_data["token"], share_msg_id, "Cool message", a_ch_id,
                     -1)
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0
    assert abs(dreams_stats["messages_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1
    assert abs(dreams_stats["messages_exist"][1]["time_stamp"] -
               a_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2
    assert abs(dreams_stats["messages_exist"][2]["time_stamp"] -
               b_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][3]["num_messages_exist"] == 3
    assert abs(dreams_stats["messages_exist"][3]["time_stamp"] -
               b_msgdm_time_stamp) <= 1

    assert dreams_stats["messages_exist"][4]["num_messages_exist"] == 4
    assert abs(dreams_stats["messages_exist"][4]["time_stamp"] -
               c_share_time_stamp) <= 1

    b_delete_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    message_remove_v1(b_data["token"], delete_msg_id)
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["messages_exist"][0]["num_messages_exist"] == 0
    assert abs(dreams_stats["messages_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["messages_exist"][1]["num_messages_exist"] == 1
    assert abs(dreams_stats["messages_exist"][1]["time_stamp"] -
               a_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][2]["num_messages_exist"] == 2
    assert abs(dreams_stats["messages_exist"][2]["time_stamp"] -
               b_msg_time_stamp) <= 1

    assert dreams_stats["messages_exist"][3]["num_messages_exist"] == 3
    assert abs(dreams_stats["messages_exist"][3]["time_stamp"] -
               b_msgdm_time_stamp) <= 1

    assert dreams_stats["messages_exist"][4]["num_messages_exist"] == 4
    assert abs(dreams_stats["messages_exist"][4]["time_stamp"] -
               c_share_time_stamp) <= 1

    assert dreams_stats["messages_exist"][5]["num_messages_exist"] == 3
    assert abs(dreams_stats["messages_exist"][5]["time_stamp"] -
               b_delete_time_stamp) <= 1
def test_dm(test_data):
    a_data, b_data, c_data = test_data
    init_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    sleep(1)

    # A: a,c
    a_dm_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    a_dm_id = dm_create_v1(a_data["token"], [c_data["auth_user_id"]])["dm_id"]
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] -
               a_dm_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 0.67

    # A: a,c
    # B: b,c
    b_dm_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    dm_create_v1(b_data["token"], [c_data["auth_user_id"]])["dm_id"]
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["dms_exist"][1]["num_dms_exist"] == 1
    assert abs(dreams_stats["dms_exist"][1]["time_stamp"] -
               a_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][2]["num_dms_exist"] == 2
    assert abs(dreams_stats["dms_exist"][2]["time_stamp"] -
               b_dm_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 1

    # A: a,c
    # B: b,c
    # C: c,a
    c_dm_time_stamp = datetime.now().replace(microsecond=0).timestamp()
    c_dm_id = dm_create_v1(c_data["token"], [a_data["auth_user_id"]])["dm_id"]
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["dms_exist"][1]["num_dms_exist"] == 1
    assert abs(dreams_stats["dms_exist"][1]["time_stamp"] -
               a_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][2]["num_dms_exist"] == 2
    assert abs(dreams_stats["dms_exist"][2]["time_stamp"] -
               b_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][3]["num_dms_exist"] == 3
    assert abs(dreams_stats["dms_exist"][3]["time_stamp"] -
               c_dm_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 1

    # A: a,c
    # B: b,c
    # C: c
    dm_leave_v1(a_data["token"], c_dm_id)
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["dms_exist"][1]["num_dms_exist"] == 1
    assert abs(dreams_stats["dms_exist"][1]["time_stamp"] -
               a_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][2]["num_dms_exist"] == 2
    assert abs(dreams_stats["dms_exist"][2]["time_stamp"] -
               b_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][3]["num_dms_exist"] == 3
    assert abs(dreams_stats["dms_exist"][3]["time_stamp"] -
               c_dm_time_stamp) <= 1

    assert dreams_stats["utilization_rate"] == 1

    # ~~A: a,c~~
    # B: b,c
    # C: c
    a_dm_remove_timestamp = datetime.now().replace(microsecond=0).timestamp()
    dm_remove_v1(a_data["token"], a_dm_id)
    sleep(1)

    dreams_stats = users_stats_v1(a_data["token"])["dreams_stats"]
    assert dreams_stats["dms_exist"][0]["num_dms_exist"] == 0
    assert abs(dreams_stats["dms_exist"][0]["time_stamp"] -
               init_time_stamp) <= 1

    assert dreams_stats["dms_exist"][1]["num_dms_exist"] == 1
    assert abs(dreams_stats["dms_exist"][1]["time_stamp"] -
               a_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][2]["num_dms_exist"] == 2
    assert abs(dreams_stats["dms_exist"][2]["time_stamp"] -
               b_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][3]["num_dms_exist"] == 3
    assert abs(dreams_stats["dms_exist"][3]["time_stamp"] -
               c_dm_time_stamp) <= 1

    assert dreams_stats["dms_exist"][4]["num_dms_exist"] == 2
    assert abs(dreams_stats["dms_exist"][4]["time_stamp"] -
               a_dm_remove_timestamp) <= 1

    assert dreams_stats["utilization_rate"] == 0.67
Пример #16
0
def test_invalid_token(reg_user):
    clear_v2()
    reg_user(0)
    with pytest.raises(AccessError):
        users_stats_v1("Invalid_token")