コード例 #1
0
ファイル: dm_test.py プロジェクト: Chris-Luong/comp1531
def test_dm_remove_v1_success(user_setup):
    dm_create_v1(make_token(0), [1])
    dm_create_v1(make_token(0), [2])  # removing this dm
    dm_remove_v1(make_token(0), 1)
    assert dm_list_v1(make_token(0)) == {
        'dms': [{
            "dm_id":
            0,
            "name":
            "gungeetsingh, petertran",
            "members": [
                {
                    'u_id': 0,
                    'email': "*****@*****.**",
                    'name_first': 'Gungeet',
                    'name_last': 'Singh',
                    'handle': 'gungeetsingh'
                },
                {
                    'u_id': 1,
                    'email': "*****@*****.**",
                    'name_first': 'Peter',
                    'name_last': 'Tran',
                    'handle': 'petertran'
                },
            ],
            "owner_members": [{
                'u_id': 0,
                'email': "*****@*****.**",
                'name_first': 'Gungeet',
                'name_last': 'Singh',
                'handle': 'gungeetsingh'
            }]
        }]
    }
コード例 #2
0
def test_invalid_dm_id():
    clear_v1()

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

    with pytest.raises(InputError):
        dm_remove_v1(auth_user_1_token, 99999)
コード例 #3
0
def test_invalid_dm_id(reg_user):
    clear_v2()
    user = reg_user(0)
    token = user['token']
    u_id = user['auth_user_id']
    dm = dm_create_v1(token, [u_id])
    dm_id = dm['dm_id']

    with pytest.raises(InputError):
        dm_remove_v1(token, dm_id + 1)
コード例 #4
0
def test_invalid_token(reg_user):

    clear_v2()
    first_user = reg_user(0)
    first_token = first_user['token']
    first_id = first_user['auth_user_id']
    dm = dm_create_v1(first_token, [first_id])
    dm_id = dm['dm_id']

    with pytest.raises(AccessError):
        dm_remove_v1("invalid_token", dm_id)
コード例 #5
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'] == []
コード例 #6
0
def test_not_creator(reg_user):
    clear_v2()
    first_user = reg_user(0)
    first_token = first_user['token']
    first_id = first_user['auth_user_id']
    dm = dm_create_v1(first_token, [first_id])
    dm_id = dm['dm_id']

    second_user = reg_user(1)
    second_token = second_user['token']
    second_id = second_user['auth_user_id']
    dm_invite_v1(first_token, dm_id, second_id)

    # second user is not the original DM creator
    with pytest.raises(AccessError):
        dm_remove_v1(second_token, dm_id)
コード例 #7
0
def test_commom_one(reg_user):
    clear_v2()
    user = reg_user(0)
    token = user['token']
    u_id = user['auth_user_id']

    # one dm id
    dm = dm_create_v1(token, [u_id])
    dm_id = dm['dm_id']

    dm_remove_v1(token, dm_id)

    dm_list = dm_list_v1(token)['dms']
    assert not len(dm_list)

    with pytest.raises(InputError):
        dm_details_v1(token, dm_id)
コード例 #8
0
ファイル: server.py プロジェクト: Chris-Luong/comp1531
def dm_remove():
    info = request.get_json()
    token = info["token"]
    dm_id = info["dm_id"]

    remove = dm_remove_v1(token, dm_id)

    return dumps(remove)
コード例 #9
0
def test_invalid_non_creator():
    clear_v1()

    auth_user_1_token = auth_register_v2("*****@*****.**", "123456", "Andy",
                                         "Dandy")["token"]
    auth_user_2_data = auth_register_v2("*****@*****.**", "123456", "Bob",
                                        "Hobs")
    auth_user_2_token = auth_user_2_data["token"]
    auth_user_2_id = auth_user_2_data["auth_user_id"]
    auth_user_3_id = auth_register_v2("*****@*****.**", "123456", "Chris",
                                      "Wiz")["auth_user_id"]

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

    with pytest.raises(AccessError):
        dm_remove_v1(auth_user_2_token, dm_id_1)
コード例 #10
0
def test_commom_more(reg_user):
    clear_v2()
    user = reg_user(0)
    token = user['token']

    user_2 = reg_user(1)
    user_2_id = user_2['auth_user_id']

    # more dm id
    dm1 = dm_create_v1(token, [user_2_id])
    dm_id1 = dm1['dm_id']
    dm2 = dm_create_v1(token, [user_2_id])
    dm_id2 = dm2['dm_id']
    dm3 = dm_create_v1(token, [user_2_id])
    dm_id3 = dm3['dm_id']
    dm_remove_v1(token, dm_id1)
    dm_remove_v1(token, dm_id2)
    dm_remove_v1(token, dm_id3)

    dm_list = dm_list_v1(token)['dms']
    assert not len(dm_list)

    # dm become invaild
    with pytest.raises(InputError):
        dm_details_v1(token, dm_id1)
    with pytest.raises(InputError):
        dm_details_v1(token, dm_id2)
    with pytest.raises(InputError):
        dm_details_v1(token, dm_id3)
コード例 #11
0
def test_dm_remove_v1():
    clear_v1()

    auth_user_1_token = auth_register_v2("*****@*****.**", "123456", "Andy",
                                         "Dandy")["token"]
    auth_user_2_id = auth_register_v2("*****@*****.**", "123456", "Bob",
                                      "Hobs")["auth_user_id"]
    auth_user_3_id = auth_register_v2("*****@*****.**", "123456", "Chris",
                                      "Wiz")["auth_user_id"]

    dm_data_1 = dm_create_v1(auth_user_1_token,
                             [auth_user_2_id, auth_user_3_id])
    dm_id_1 = dm_data_1["dm_id"]
    dm_name_1 = dm_data_1["dm_name"]

    dm_list = dm_list_v1(auth_user_1_token)
    assert dm_list["dms"][0]["dm_id"] == dm_id_1
    assert dm_list["dms"][0]["name"] == dm_name_1

    auth_user_4_id = auth_register_v2("*****@*****.**", "123456", "Joshua",
                                      "King")["auth_user_id"]
    dm_data_2 = dm_create_v1(auth_user_1_token,
                             [auth_user_3_id, auth_user_4_id])
    dm_id_2 = dm_data_2["dm_id"]
    dm_name_2 = dm_data_2["dm_name"]

    dm_list = dm_list_v1(auth_user_1_token)
    assert dm_list["dms"][1]["dm_id"] == dm_id_2
    assert dm_list["dms"][1]["name"] == dm_name_2

    dm_remove_v1(auth_user_1_token, dm_id_1)
    dm_list = dm_list_v1(auth_user_1_token)
    assert dm_list["dms"][0]["dm_id"] == dm_id_2
    assert dm_list["dms"][0]["name"] == dm_name_2

    dm_remove_v1(auth_user_1_token, dm_id_2)
    dm_list = dm_list_v1(auth_user_1_token)
    assert dm_list["dms"] == []
コード例 #12
0
ファイル: dm_test.py プロジェクト: Chris-Luong/comp1531
def test_dm_remove_v1_errors(user_setup, dm_setup):
    # invalid token
    with pytest.raises(AccessError):
        dm_remove_v1(make_token(123456), 0)

    # invalid dm
    with pytest.raises(InputError):
        dm_remove_v1(make_token(1), 10)

    # User is not the owner
    with pytest.raises(AccessError):
        dm_remove_v1(make_token(0), 2)
コード例 #13
0
ファイル: server.py プロジェクト: Stress-Puppy/1531
def dm_remove(): 
    parameters = request.get_json()
    token = parameters['token']
    dm_id = parameters['dm_id']
    dm_remove_v1(token, dm_id)
    return dumps({})
コード例 #14
0
ファイル: user_test.py プロジェクト: Chris-Luong/comp1531
def test_user_stats_dms(register_users, dm_setup):
    # testing dms
    assert user_stats_v1(make_token(0)) == {
        'user_stats': {
            "channels_joined": [{
                "num_channels_joined": 0,
                "time_stamp": str(create_timestamp())
            }],
            "dms_joined": [{
                "num_dms_joined": 0,
                "time_stamp": str(create_timestamp())
            }, {
                "num_dms_joined": 1,
                "time_stamp": str(create_timestamp())
            }, {
                "num_dms_joined": 2,
                "time_stamp": str(create_timestamp())
            }, {
                "num_dms_joined": 3,
                "time_stamp": str(create_timestamp())
            }],
            "messages_sent": [{
                "num_messages_sent": 0,
                "time_stamp": str(create_timestamp())
            }],
            "involvement_rate":
            1.0
        }
    }
    dm_remove_v1(make_token(0), 2)
    assert user_stats_v1(make_token(0)) == {
        'user_stats': {
            "channels_joined": [{
                "num_channels_joined": 0,
                "time_stamp": str(create_timestamp())
            }],
            "dms_joined": [
                {
                    "num_dms_joined": 0,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 1,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 2,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 3,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 2,
                    "time_stamp": str(create_timestamp())
                },
            ],
            "messages_sent": [{
                "num_messages_sent": 0,
                "time_stamp": str(create_timestamp())
            }],
            "involvement_rate":
            1.0
        }
    }
    dm_leave_v1(make_token(1), 0)
    assert user_stats_v1(make_token(1)) == {
        'user_stats': {
            "channels_joined": [{
                "num_channels_joined": 0,
                "time_stamp": str(create_timestamp())
            }],
            "dms_joined": [
                {
                    "num_dms_joined": 0,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 1,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 2,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 1,
                    "time_stamp": str(create_timestamp())
                },
            ],
            "messages_sent": [{
                "num_messages_sent": 0,
                "time_stamp": str(create_timestamp())
            }],
            "involvement_rate":
            0.5
        }
    }
    dm_invite_v1(make_token(0), 0, 1)
    assert user_stats_v1(make_token(1)) == {
        'user_stats': {
            "channels_joined": [{
                "num_channels_joined": 0,
                "time_stamp": str(create_timestamp())
            }],
            "dms_joined": [
                {
                    "num_dms_joined": 0,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 1,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 2,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 1,
                    "time_stamp": str(create_timestamp())
                },
                {
                    "num_dms_joined": 2,
                    "time_stamp": str(create_timestamp())
                },
            ],
            "messages_sent": [{
                "num_messages_sent": 0,
                "time_stamp": str(create_timestamp())
            }],
            "involvement_rate":
            1.0
        }
    }
コード例 #15
0
def test_dm(test_data):
    a_data, b_data, c_data = test_data

    # b makes dm with c
    # a inv. = 0
    # b and c inv. = 1
    b_dm_create_timestamp = datetime.now().replace(microsecond=0).timestamp()
    b_dm_id = dm_create_v1(b_data["token"], [c_data["auth_user_id"]])["dm_id"]
    sleep(1)

    user_stats = user_stats_v1(a_data["token"])["user_stats"]
    assert user_stats["dms_joined"][0]["num_dms_joined"] == 0
    assert abs(user_stats["dms_joined"][0]["time_stamp"] - a_data["time_registered"]) <= 1

    assert user_stats["involvement_rate"] == 0

    user_stats = user_stats_v1(b_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["involvement_rate"] == 1

    user_stats = user_stats_v1(c_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["involvement_rate"] == 1

    # a makes dm with b, c
    # a inv. = 0.5
    # b and c inv. = 1
   
    a_dm_create_timestamp = datetime.now().replace(microsecond=0).timestamp()
    a_dm_id = dm_create_v1(a_data["token"], [b_data["auth_user_id"], c_data["auth_user_id"]])["dm_id"]
    sleep(1)
    
    user_stats = user_stats_v1(a_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["involvement_rate"] == 0.5

    user_stats = user_stats_v1(b_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][2]["num_dms_joined"] == 2
    assert abs(user_stats["dms_joined"][2]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["involvement_rate"] == 1

    user_stats = user_stats_v1(c_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][2]["num_dms_joined"] == 2
    assert abs(user_stats["dms_joined"][2]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["involvement_rate"] == 1

    # b leaves a dm
    # b inv. = 0.5
    b_dm_leave_timestamp = datetime.now().replace(microsecond=0).timestamp()
    dm_leave_v1(b_data["token"], a_dm_id)
    sleep(1)

    user_stats = user_stats_v1(b_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][2]["num_dms_joined"] == 2
    assert abs(user_stats["dms_joined"][2]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][3]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][3]["time_stamp"] - b_dm_leave_timestamp) <= 1

    assert user_stats["involvement_rate"] == 0.50

    # b deletes b_dm
    # a and c inv. = 1
    # b inv. = 0
    b_dm_remove_timestamp = datetime.now().replace(microsecond=0).timestamp()
    dm_remove_v1(b_data["token"], b_dm_id)
    sleep(1)

    user_stats = user_stats_v1(a_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["involvement_rate"] == 1
    
    user_stats = user_stats_v1(b_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][2]["num_dms_joined"] == 2
    assert abs(user_stats["dms_joined"][2]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][3]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][3]["time_stamp"] - b_dm_leave_timestamp) <= 1

    assert user_stats["dms_joined"][4]["num_dms_joined"] == 0
    assert abs(user_stats["dms_joined"][4]["time_stamp"] - b_dm_remove_timestamp) <= 1

    assert user_stats["involvement_rate"] == 0

    user_stats = user_stats_v1(c_data["token"])["user_stats"]
    assert user_stats["dms_joined"][1]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][1]["time_stamp"] - b_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][2]["num_dms_joined"] == 2
    assert abs(user_stats["dms_joined"][2]["time_stamp"] - a_dm_create_timestamp) <= 1

    assert user_stats["dms_joined"][3]["num_dms_joined"] == 1
    assert abs(user_stats["dms_joined"][3]["time_stamp"] - b_dm_remove_timestamp) <= 1

    assert user_stats["involvement_rate"] == 1
コード例 #16
0
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