Exemplo n.º 1
0
def test_message_edit_stat():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    channel1 = channels_create_v2(result1['token'], "The party channel 1",
                                  True).json()
    message1 = message_send_v2(result1['token'], channel1['channel_id'],
                               'Hello, how are you?').json()
    message2 = message_send_v2(result1['token'], channel1['channel_id'],
                               'Hello, how are you?').json()
    message_edit_v2(result1['token'], message1['message_id'], 'Hi Im user 1')
    message_edit_v2(result1['token'], message2['message_id'], '')
    #message_remove_v1(result1['token'], message2['message_id'])
    output = user_stats(result1['token']).json()

    dreams = users_stats(result1['token']).json()
    assert len(output['user_stats']) == 4
    assert output['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 0
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 2
    assert output['user_stats']['involvement_rate'] == 3 / 2

    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1][
        'num_channels_exist'] == 1
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 0
    assert dreams['dreams_stats']['messages_exist'][-1][
        'num_messages_exist'] == 1
    assert dreams['dreams_stats']['utilization_rate'] == 1
Exemplo n.º 2
0
def test_assorted_notifications():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng").json()
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton").json()
    channel1 = channels_create_v2(user1['token'], 'Channel 1', True).json()
    channel_invite_v2(user1['token'], channel1['channel_id'],
                      user2['auth_user_id'])
    msg1str = "Welcome to the channel @joshhatton"
    msg1 = message_send_v2(user1['token'], channel1['channel_id'],
                           msg1str).json()
    message_react_v1(user2['token'], msg1['message_id'], 1)
    msg2str = "Thanks for having me @ericzheng"
    msg2 = message_send_v2(user2['token'], channel1['channel_id'],
                           msg2str).json()
    message_react_v1(user1['token'], msg2['message_id'], 1)

    assert notifications_get_v1(user1['token']).json() == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"joshhatton tagged you in Channel 1: {msg2str[0:20]}"
        }, {
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "joshhatton reacted to your message in Channel 1"
        }]
    }
    assert notifications_get_v1(user2['token']).json() == {
        'notifications': [
            {
                'channel_id':
                channel1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                "ericzheng reacted to your message in Channel 1"
            },
            {
                'channel_id':
                channel1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"ericzheng tagged you in Channel 1: {msg1str[0:20]}"
            },
            {
                'channel_id': channel1['channel_id'],
                'dm_id': -1,
                'notification_message': "ericzheng added you to Channel 1"
            },
        ]
    }
Exemplo n.º 3
0
def test_two_tags():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng").json()
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton").json()
    channel1 = channels_create_v2(user1['token'], 'Channel 1', True).json()
    channel_join_v2(user2['token'], channel1['channel_id'])
    msg1str = "@ericzheng @joshhatton"
    message_send_v2(user1['token'], channel1['channel_id'], msg1str)

    assert notifications_get_v1(user1['token']).json() == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"ericzheng tagged you in Channel 1: {msg1str[0:20]}"
        }]
    }
    assert notifications_get_v1(user2['token']).json() == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"ericzheng tagged you in Channel 1: {msg1str[0:20]}"
        }]
    }
def test_success_over_fifty_msgs_channel(create_input):
    for i in range(0, 110):
        message_send_v2(create_input[0][0]["token"],
                        create_input[1][0]["channel_id"],
                        f"First channel extra message {i}.")
    result = search_v2(create_input[0][1]["token"], "First").json()
    assert type(result) == dict
    assert len(result["messages"]) == 110
def create_input():
    clear_v1()

    users = [
        auth_register_v2("*****@*****.**", "validpassword", "Josh",
                         "Hatton").json(),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                         "Dong").json(),
        auth_register_v2("*****@*****.**", "password3", "Jordan",
                         "Milch").json(),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                         "Zworestine").json(),
        auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                         "Zheng").json(),
    ]

    channels = [
        channels_create_v2(users[0]["token"], "First Channel",
                           True).json()['channel_id'],
        channels_create_v2(users[1]["token"], "Second Channel",
                           False).json()['channel_id']
    ]

    dms = [
        dm_create_v1(users[0]['token'],
                     [users[2]['auth_user_id']]).json()['dm_id'],
        dm_create_v1(users[1]['token'],
                     [users[3]['auth_user_id'], users[4]['auth_user_id']
                      ]).json()['dm_id']
    ]

    # Send 5 messages to First Channel
    channel_1_messages = []
    for i in range(0, 5):
        channel_1_messages.append(
            message_send_v2(
                users[0]["token"], channels[0],
                f"First channel message {i}.").json()['message_id'])

    # Send 5 messages to Second Channel
    for i in range(0, 5):
        message_send_v2(users[1]["token"], channels[1],
                        f"Second channel message {i}.")

    # Send 5 messages to First DM
    dm_1_messages = []
    for i in range(0, 5):
        dm_1_messages.append(
            message_senddm_v1(users[0]["token"], dms[0],
                              f"First dm message {i}.").json()['message_id'])

    # Send 5 messages to Second DM
    for i in range(0, 5):
        message_senddm_v1(users[1]["token"], dms[1], f"Second dm message {i}.")

    return [users, channels, dms, channel_1_messages, dm_1_messages]
Exemplo n.º 6
0
def test_mixed_decrement():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    result2 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    channel1 = channels_create_v2(result1['token'], "The party channel 1",
                                  True).json()['channel_id']
    message1 = message_send_v2(result1['token'], channel1,
                               'hello how are you').json()['message_id']

    message_remove_v1(result1['token'], message1)
    channel_join_v2(result2['token'], channel1)
    channel_leave_v1(result2['token'], channel1)

    output = user_stats(result1['token']).json()
    assert output['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    output1 = user_stats(result2['token']).json()
    assert output1['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 0
    dreams = users_stats(result1['token']).json()
    assert dreams['dreams_stats']['channels_exist'][-1][
        'num_channels_exist'] == 1
    assert dreams['dreams_stats']['messages_exist'][-1][
        'num_messages_exist'] == 0
Exemplo n.º 7
0
def test_mixed_harder():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    result2 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    channel1 = channels_create_v2(result1['token'], "The party channel 1",
                                  True).json()['channel_id']
    message_send_v2(result1['token'], channel1, 'hello how are you')
    dm_create_v1(result1['token'], [result2['auth_user_id']])
    output = user_stats(result1['token']).json()
    assert len(output['user_stats']) == 4
    assert output['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output['user_stats']['involvement_rate'] == 1
    channels_create_v2(result1['token'], "The party channel 2", True)
    channel3 = channels_create_v2(result2['token'], "The party channel 3",
                                  True).json()['channel_id']
    channel_addowner_v1(result2['token'], channel3, result1['auth_user_id'])
    message_send_v2(result2['token'], channel3, 'hello how are you')
    output1 = user_stats(result1['token']).json()
    output2 = user_stats(result2['token']).json()
    assert len(output1['user_stats']) == 4
    assert output1['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 3
    assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output1['user_stats']['involvement_rate'] == 5 / 6
    assert len(output2['user_stats']) == 4
    assert output2['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output2['user_stats']['involvement_rate'] == 3 / 6

    dreams = users_stats(result1['token']).json()
    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1][
        'num_channels_exist'] == 3
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 1
    assert dreams['dreams_stats']['messages_exist'][-1][
        'num_messages_exist'] == 2
    assert dreams['dreams_stats']['utilization_rate'] == 1
Exemplo n.º 8
0
def test_invalid_token():
    """ Tests return of expected output when given a token that doesn't exist,
        or if the user is not in the channel/dm.
    """
    clear_v1()
    # Token doesnt exist
    user_1 = auth_register_v2('*****@*****.**', 'happydays1', 'Eric',
                              'Zheng').json()

    assert notifications_get_v1(user_1['token'] +
                                'bug').status_code == ACCESS_ERROR

    # User not in channel
    user_2 = auth_register_v2('*****@*****.**', 'happydays2', 'Josh',
                              'Hatton').json()
    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True).json()

    user_2_handle = user_profile_v2(user_1['token'],
                                    user_2['auth_user_id']).json()

    message_send_v2(user_1['token'], channel_1['channel_id'],
                    f"Hi @{user_2_handle['user']['handle_str']}")

    assert notifications_get_v1(user_2['token']).json() == {
        'notifications': []
    }

    # User not in dm
    dm_1 = dm_create_v1(user_1['token'], [user_2['auth_user_id']]).json()
    user_3 = auth_register_v2('*****@*****.**', 'hihihi!!!', 'Bunny',
                              'Dong').json()
    user_3_handle = user_profile_v2(user_1['token'],
                                    user_3['auth_user_id']).json()

    message_senddm_v1(user_1['token'], dm_1['dm_id'],
                      f"Hello @{user_3_handle['user']['handle_str']}")

    assert notifications_get_v1(user_3['token']).json() == {
        'notifications': []
    }
Exemplo n.º 9
0
def test_simple_tag():
    clear_v1()
    user_1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                              "Zheng").json()
    user_2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                              "Hatton").json()

    message_1 = "@ericzheng, how are you doing today?"

    channel_1 = channels_create_v2(user_1['token'], 'Channel 1', True).json()
    channel_join_v2(user_2['token'], channel_1['channel_id'])
    message_send_v2(user_2['token'], channel_1['channel_id'], message_1)

    assert notifications_get_v1(user_1['token']).json() == {
        'notifications': [{
            'channel_id':
            channel_1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"joshhatton tagged you in Channel 1: {message_1[0:20]}"
        }]
    }
Exemplo n.º 10
0
def test_mixed_success(create_input):
    current_time = int(time.time())
    message_send_v2(create_input[0][0]["token"],
                    create_input[1][0]["channel_id"],
                    "This is the first normal message")
    assert len(
        channel_messages_v2(create_input[0][0]["token"],
                            create_input[1][0]["channel_id"],
                            0).json()["messages"]) == 1
    msg = message_sendlater_v1(create_input[0][1]["token"],
                               create_input[1][0]["channel_id"],
                               "Hey there, I'm from the past!",
                               current_time + 2).json()
    assert type(msg) == dict
    assert type(msg["message_id"]) == int
    message_send_v2(create_input[0][2]["token"],
                    create_input[1][0]["channel_id"],
                    "This is the second normal message")

    # Make sure delayed message has not been sent yet
    msgs = channel_messages_v2(create_input[0][1]["token"],
                               create_input[1][0]["channel_id"],
                               0).json()["messages"]
    assert len(msgs) == 2

    # Wait 2.5 seconds and check again; delayed message should be there
    time.sleep(2.5)
    msgs = channel_messages_v2(create_input[0][1]["token"],
                               create_input[1][0]["channel_id"],
                               0).json()["messages"]
    assert len(msgs) == 3
    assert msgs[0]["message"] == "Hey there, I'm from the past!"
    assert msgs[0]["time_created"] == current_time + 2
    assert msgs[1]["message"] == "This is the second normal message"
    assert msgs[1]["time_created"] == current_time
    assert msgs[2]["message"] == "This is the first normal message"
    assert msgs[2]["time_created"] == current_time
Exemplo n.º 11
0
def test_single_react_notification():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng").json()
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton").json()
    channel1 = channels_create_v2(user1['token'], 'Channel 1', True).json()
    channel_join_v2(user2['token'], channel1['channel_id'])
    msg1 = message_send_v2(user1['token'], channel1['channel_id'],
                           "1 like = 1 prayer").json()
    message_react_v1(user2['token'], msg1['message_id'], 1)

    assert notifications_get_v1(user1['token']).json() == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "joshhatton reacted to your message in Channel 1"
        }]
    }
def create_input():
    clear_v1()

    data_test_users = [
        auth_register_v2("*****@*****.**", "validpassword", "Josh",
                         "Hatton").json(),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                         "Dong").json(),
        auth_register_v2("*****@*****.**", "password3", "Jordan",
                         "Milch").json(),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                         "Zworestine").json(),
        auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                         "Zheng").json(),
    ]

    data_test_channels = [
        channels_create_v2(data_test_users[0]["token"], "First Channel",
                           True).json(),
        channels_create_v2(data_test_users[1]["token"], "Second Channel",
                           True).json(),
        channels_create_v2(data_test_users[2]["token"], "Third Channel",
                           False).json(),
    ]

    # Send 10 messages to First Channel
    for i in range(0, 10):
        message_send_v2(data_test_users[0]["token"],
                        data_test_channels[0]["channel_id"],
                        f"First channel message {i}.")

    # Send 55 messages to Second Channel
    for i in range(0, 55):
        message_send_v2(data_test_users[1]["token"],
                        data_test_channels[1]["channel_id"],
                        f"Second channel message {i}.")

    # Send 120 messages to Third Channel
    for i in range(0, 120):
        message_send_v2(data_test_users[2]["token"],
                        data_test_channels[2]["channel_id"],
                        f"Third channel message {i}.")

    return [data_test_users, data_test_channels]
Exemplo n.º 13
0
def create_input():
    clear_v1()

    data_test_users = [
        auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                         "Zheng").json(),
        auth_register_v2("*****@*****.**", "validpassword", "Josh",
                         "Hatton").json(),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                         "Dong").json(),
        auth_register_v2("*****@*****.**", "password3", "Jordan",
                         "Milch").json(),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                         "Zworestine").json(),
    ]

    data_test_channels = [
        channels_create_v2(data_test_users[0]["token"], "Channel 1",
                           True).json(),
        channels_create_v2(data_test_users[1]["token"], "Private",
                           False).json(),
    ]

    # User1, User3, User 4 in channel 1
    # User2, User 5 in channel 2
    channel_join_v2(data_test_users[2]["token"],
                    data_test_channels[0]["channel_id"])
    channel_join_v2(data_test_users[3]["token"],
                    data_test_channels[0]["channel_id"])
    channel_invite_v2(data_test_users[1]["token"],
                      data_test_channels[1]["channel_id"],
                      data_test_users[4]["auth_user_id"])

    # User 1, user3, user4 sends a message to channel 1
    # User2, user5 sends a message to channel 2
    data_test_channel_messages = [
        message_send_v2(
            data_test_users[0]["token"],
            data_test_channels[0]["channel_id"],
            "Look, I was gonna go easy on you \
                                 Not to hurt your feelings \
                                 But I'm only going to get this one chance \
                                 Something's wrong, I can feel it",
        ).json(),
        message_send_v2(
            data_test_users[1]["token"],
            data_test_channels[1]["channel_id"],
            "Can we pretend that airplanes in the night \
                                 sky are like shootin' stars \
                                 I could really use a wish right now, wish right \
                                 now, wish right now Can we pretend that \
                                 airplanes in the night sky are like shootin'",
        ).json(),
        message_send_v2(
            data_test_users[2]["token"],
            data_test_channels[0]["channel_id"],
            "All I want is nothing more \
                                  To hear you knocking at my door \
                                  'Cause if I could see your face once more \
                                  I could die a happy man I'm sure",
        ).json(),
        message_send_v2(
            data_test_users[3]["token"],
            data_test_channels[0]["channel_id"],
            "I've been staring at the edge of the water \
                                  'Long as I can remember \
                                  Never really knowing why",
        ).json(),
        message_send_v2(
            data_test_users[4]["token"],
            data_test_channels[1]["channel_id"],
            "I am so so so so so sick of writing these tests \
                                  someone please send help i am so tired lol.",
        ).json(),
    ]

    # user 1 has dm with user 2
    # user 3 has dm with user 4
    # user 5 has dm with user 2
    data_test_dms = [
        dm_create_v1(data_test_users[0]["token"],
                     [data_test_users[1]["auth_user_id"]]).json(),
        dm_create_v1(data_test_users[2]["token"],
                     [data_test_users[3]["auth_user_id"]]).json(),
        dm_create_v1(data_test_users[4]["token"],
                     [data_test_users[1]["auth_user_id"]]).json(),
    ]

    # user 1, user_2 sends dm to dm_1
    # user 3, user 4 sends dm to dm_2
    # user 5 sends dm to dm_3
    data_test_dm_messages = [
        message_senddm_v1(data_test_users[0]["token"],
                          data_test_dms[0]["dm_id"], "Hello user 2!").json(),
        message_senddm_v1(data_test_users[1]["token"],
                          data_test_dms[0]["dm_id"], "Hi user 1!").json(),
        message_senddm_v1(data_test_users[2]["token"],
                          data_test_dms[1]["dm_id"],
                          "How are you user 4?").json(),
        message_senddm_v1(data_test_users[3]["token"],
                          data_test_dms[1]["dm_id"],
                          "I am fine user 3!").json(),
        message_senddm_v1(data_test_users[4]["token"],
                          data_test_dms[2]["dm_id"], "Shut up user 2.").json(),
    ]

    return [
        data_test_users, data_test_channels, data_test_channel_messages,
        data_test_dms, data_test_dm_messages
    ]
Exemplo n.º 14
0
def test_greater_than_20_notifications():
    """ Tests for correctly displayed most recent 20 notifications
    """
    clear_v1()
    user_1 = auth_register_v2('*****@*****.**', 'kjhfbshjbdf', 'Eric',
                              'Zheng').json()
    user_1_handle = user_profile_v2(user_1['token'],
                                    user_1['auth_user_id']).json()
    channel_1 = channels_create_v2(user_1['token'], 'Test', True).json()

    # Send 25 message notifications
    sent_messages = []
    for i in range(25):
        message_send_v2(
            user_1['token'], channel_1['channel_id'],
            f"@{user_1_handle['user']['handle_str']} - this is notification {i}"
        )
        sent_messages.append(
            f"@{user_1_handle['user']['handle_str']} - this is notification {i}"
        )

    assert notifications_get_v1(user_1['token']).json() == {
        'notifications': [
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[24][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[23][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[22][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[21][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[20][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[19][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[18][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[17][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[16][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[15][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[14][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[13][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[12][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[11][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[10][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[9][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[8][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[7][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[6][0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Test: {sent_messages[5][0:20]}"
            },
        ]
    }
def create_input():
    clear_v1()

    data_test_users = [
        auth_register_v2("*****@*****.**", "validpassword", "Josh",
                         "Hatton").json(),
        auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                         "Dong").json(),
        auth_register_v2("*****@*****.**", "password3", "Jordan",
                         "Milch").json(),
        auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                         "Zworestine").json(),
        auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                         "Zheng").json(),
    ]

    data_test_channels = [
        channels_create_v2(data_test_users[0]["token"], "First Channel",
                           True).json(),
        channels_create_v2(data_test_users[1]["token"], "Second Channel",
                           True).json(),
    ]

    data_test_dms = [
        dm_create_v1(data_test_users[0]["token"], [
            data_test_users[1]["auth_user_id"],
            data_test_users[2]["auth_user_id"]
        ]).json(),
        dm_create_v1(data_test_users[3]["token"], [
            data_test_users[0]["auth_user_id"],
            data_test_users[4]["auth_user_id"]
        ]).json(),
    ]

    # Add everyone to First Channel
    channel_join_v2(data_test_users[1]["token"],
                    data_test_channels[0]["channel_id"])
    channel_join_v2(data_test_users[2]["token"],
                    data_test_channels[0]["channel_id"])
    channel_join_v2(data_test_users[3]["token"],
                    data_test_channels[0]["channel_id"])
    channel_join_v2(data_test_users[4]["token"],
                    data_test_channels[0]["channel_id"])

    # Add users 0 and 3 to Second Channel
    channel_join_v2(data_test_users[0]["token"],
                    data_test_channels[1]["channel_id"])
    channel_join_v2(data_test_users[3]["token"],
                    data_test_channels[1]["channel_id"])

    # Send messages to First Channel
    message_send_v2(data_test_users[0]["token"],
                    data_test_channels[0]["channel_id"], "Hey there")
    message_send_v2(data_test_users[1]["token"],
                    data_test_channels[0]["channel_id"],
                    "Hey nice to meet you")
    message_send_v2(data_test_users[2]["token"],
                    data_test_channels[0]["channel_id"],
                    "I'm excited to be here!")
    message_send_v2(data_test_users[3]["token"],
                    data_test_channels[0]["channel_id"], "Me too!")

    # Send messages to Second Channel
    message_send_v2(data_test_users[1]["token"],
                    data_test_channels[1]["channel_id"], "hey")
    message_send_v2(data_test_users[0]["token"],
                    data_test_channels[1]["channel_id"], "sup")
    message_send_v2(data_test_users[3]["token"],
                    data_test_channels[1]["channel_id"],
                    "Nice weather today aye...")

    # Send messages to dm_1
    message_senddm_v1(data_test_users[0]["token"], data_test_dms[0]["dm_id"],
                      "Hey there")
    message_senddm_v1(data_test_users[1]["token"], data_test_dms[0]["dm_id"],
                      "Oh hi Mark")
    message_senddm_v1(data_test_users[2]["token"], data_test_dms[0]["dm_id"],
                      "Lol")

    # Send messages to dm_2
    message_senddm_v1(data_test_users[0]["token"], data_test_dms[1]["dm_id"],
                      "Hey again. This is getting repetitive...")
    message_senddm_v1(data_test_users[3]["token"], data_test_dms[1]["dm_id"],
                      "Yeah true lol")
    message_senddm_v1(data_test_users[4]["token"], data_test_dms[1]["dm_id"],
                      "Haha")

    return [data_test_users, data_test_channels, data_test_dms]
Exemplo n.º 16
0
def test_multiple_react_notification():
    clear_v1()
    user1 = auth_register_v2("*****@*****.**", "finalpassword", "Eric",
                             "Zheng").json()
    user2 = auth_register_v2("*****@*****.**", "validpassword", "Josh",
                             "Hatton").json()
    user3 = auth_register_v2("*****@*****.**", "anotherpassword", "Bunny",
                             "Dong").json()
    user4 = auth_register_v2("*****@*****.**", "password3", "Jordan",
                             "Milch").json()
    user5 = auth_register_v2("*****@*****.**", "4thpassword", "Dean",
                             "Zworestine").json()
    channel1 = channels_create_v2(user1['token'], 'Channel 1', True).json()
    channel_join_v2(user2['token'], channel1['channel_id'])
    channel_join_v2(user3['token'], channel1['channel_id'])
    channel_join_v2(user4['token'], channel1['channel_id'])
    channel_join_v2(user5['token'], channel1['channel_id'])
    msg1 = message_send_v2(user1['token'], channel1['channel_id'],
                           "1 like = 1 prayer").json()
    message_react_v1(user1['token'], msg1['message_id'], 1)
    message_react_v1(user2['token'], msg1['message_id'], 1)
    message_react_v1(user3['token'], msg1['message_id'], 1)
    message_react_v1(user4['token'], msg1['message_id'], 1)
    message_react_v1(user5['token'], msg1['message_id'], 1)

    assert notifications_get_v1(user1['token']).json() == {
        'notifications': [{
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "deanzworestine reacted to your message in Channel 1"
        }, {
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "jordanmilch reacted to your message in Channel 1"
        }, {
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "bunnydong reacted to your message in Channel 1"
        }, {
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "joshhatton reacted to your message in Channel 1"
        }, {
            'channel_id':
            channel1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            "ericzheng reacted to your message in Channel 1"
        }]
    }
Exemplo n.º 17
0
def test_channel_tagged_user(create_input):
    """ Tests correct return of notifications when user is tagged in a channel.
    """
    user_1, user_2, user_3, user_4, user_5 = create_input[0]

    user_1_handle = create_input[1][0]
    user_2_handle = create_input[1][1]
    user_3_handle = create_input[1][2]
    user_4_handle = create_input[1][3]
    user_5_handle = create_input[1][4]

    channel_1, channel_2, channel_3 = create_input[2]

    message_1 = f"@{user_1_handle['user']['handle_str']}, how are you on such a fine lovely day? I hope you are well!"
    message_2 = f"@{user_2_handle['user']['handle_str']}, can you send me homework answers from yesterday please? Thanks!"
    message_3 = f"@{user_3_handle['user']['handle_str']}, I heard that your knees are the finest knees in all of Australia, is this true?"
    message_4 = f"@{user_4_handle['user']['handle_str']} is cool."
    message_5 = f"@{user_5_handle['user']['handle_str']} is a donkey."
    message_6 = f"@{user_3_handle['user']['handle_str']} is an even bigger donkey than @{user_4_handle['user']['handle_str']}"

    dm_1, dm_2, dm_3 = create_input[3]

    channel_join_v2(user_2['token'], channel_1['channel_id'])
    channel_join_v2(user_3['token'], channel_1['channel_id'])
    channel_join_v2(user_4['token'], channel_1['channel_id'])
    channel_join_v2(user_4['token'], channel_2['channel_id'])
    channel_join_v2(user_5['token'], channel_2['channel_id'])
    channel_join_v2(user_1['token'], channel_3['channel_id'])

    message_send_v2(user_1['token'], channel_1['channel_id'], message_2)
    message_send_v2(user_1['token'], channel_1['channel_id'], message_3)
    message_send_v2(user_2['token'], channel_2['channel_id'], message_4)
    message_send_v2(user_2['token'], channel_2['channel_id'], message_5)
    message_send_v2(user_3['token'], channel_1['channel_id'], message_1)
    message_send_v2(user_1['token'], channel_1['channel_id'], message_6)

    assert notifications_get_v1(user_2['token']).json() == {
        'notifications': [{
            'channel_id':
            channel_1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"{user_1_handle['user']['handle_str']} tagged you in Channel 1: {message_2[0:20]}"
        }, {
            'channel_id':
            -1,
            'dm_id':
            dm_3['dm_id'],
            'notification_message':
            f"{user_5_handle['user']['handle_str']} added you to {dm_3['dm_name']}"
        }, {
            'channel_id':
            -1,
            'dm_id':
            dm_1['dm_id'],
            'notification_message':
            f"{user_1_handle['user']['handle_str']} added you to {dm_1['dm_name']}"
        }]
    }

    assert notifications_get_v1(user_3['token']).json() == {
        'notifications': [
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Channel 1: {message_6[0:20]}"
            },
            {
                'channel_id':
                channel_1['channel_id'],
                'dm_id':
                -1,
                'notification_message':
                f"{user_1_handle['user']['handle_str']} tagged you in Channel 1: {message_3[0:20]}"
            },
        ]
    }

    assert notifications_get_v1(user_4['token']).json() == {
        'notifications': [{
            'channel_id':
            channel_1['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"{user_1_handle['user']['handle_str']} tagged you in Channel 1: {message_6[0:20]}"
        }, {
            'channel_id':
            channel_2['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"{user_2_handle['user']['handle_str']} tagged you in Channel 2: {message_4[0:20]}"
        }, {
            'channel_id':
            -1,
            'dm_id':
            dm_2['dm_id'],
            'notification_message':
            f"{user_3_handle['user']['handle_str']} added you to {dm_2['dm_name']}"
        }]
    }

    assert notifications_get_v1(user_5['token']).json() == {
        'notifications': [{
            'channel_id':
            channel_2['channel_id'],
            'dm_id':
            -1,
            'notification_message':
            f"{user_2_handle['user']['handle_str']} tagged you in Channel 2: {message_5[0:20]}"
        }]
    }
Exemplo n.º 18
0
def test_further_mixed_harder():
    clear_v1()
    result1 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    result2 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    result3 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()
    result4 = auth_register_v2('*****@*****.**', 'password', 'comp',
                               'student').json()

    channel1 = channels_create_v2(result1['token'], "The party channel 1",
                                  True).json()
    channel2 = channels_create_v2(result2['token'], "The party channel 2",
                                  True).json()
    dm_create_v1(result1['token'],
                 [result2['auth_user_id'], result3['auth_user_id']])
    dm_create_v1(result2['token'],
                 [result4['auth_user_id'], result3['auth_user_id']])

    output1 = user_stats(result1['token']).json()
    output2 = user_stats(result2['token']).json()
    output3 = user_stats(result3['token']).json()
    output4 = user_stats(result4['token']).json()

    assert len(output1['user_stats']) == 4
    assert output1['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output1['user_stats']['involvement_rate'] == 2 / 4

    assert len(output2['user_stats']) == 4
    assert output2['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2
    assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output2['user_stats']['involvement_rate'] == 3 / 4

    assert len(output3['user_stats']) == 4
    assert output3['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 0
    assert output3['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2
    assert output3['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output3['user_stats']['involvement_rate'] == 2 / 4

    assert len(output4['user_stats']) == 4
    assert output4['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 0
    assert output4['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output4['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output4['user_stats']['involvement_rate'] == 1 / 4

    dreams = users_stats(result1['token']).json()
    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1][
        'num_channels_exist'] == 2
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 2
    assert dreams['dreams_stats']['messages_exist'][-1][
        'num_messages_exist'] == 0
    assert dreams['dreams_stats']['utilization_rate'] == 1

    channel_invite_v2(result1['token'], channel1['channel_id'],
                      result3['auth_user_id'])
    channel_invite_v2(result2['token'], channel2['channel_id'],
                      result3['auth_user_id'])

    message1 = message_send_v2(result1['token'], channel1['channel_id'],
                               'Hello, how are you?').json()
    message_send_v2(result1['token'], channel1['channel_id'],
                    'Hello, how are you?')
    message_send_v2(result1['token'], channel1['channel_id'],
                    'Hello, how are you?')
    message_send_v2(result2['token'], channel2['channel_id'],
                    'Hello, how are you?')
    message2 = message_send_v2(result3['token'], channel2['channel_id'],
                               'Hello, how are you?').json()
    message_remove_v1(result1['token'], message1['message_id'])
    message_remove_v1(result3['token'], message2['message_id'])

    auth_register_v2('*****@*****.**', 'password', 'comp', 'student')

    output1 = user_stats(result1['token']).json()
    output2 = user_stats(result2['token']).json()
    output3 = user_stats(result3['token']).json()
    output4 = user_stats(result4['token']).json()
    dreams = users_stats(result1['token']).json()

    assert len(output1['user_stats']) == 4
    assert output1['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output1['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output1['user_stats']['messages_sent'][-1]['num_messages_sent'] == 3
    assert output1['user_stats']['involvement_rate'] == 5 / 7

    assert len(output2['user_stats']) == 4
    assert output2['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 1
    assert output2['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2
    assert output2['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output2['user_stats']['involvement_rate'] == 4 / 7

    assert len(output3['user_stats']) == 4
    assert output3['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 2
    assert output3['user_stats']['dms_joined'][-1]['num_dms_joined'] == 2
    assert output3['user_stats']['messages_sent'][-1]['num_messages_sent'] == 1
    assert output3['user_stats']['involvement_rate'] == 5 / 7

    assert len(output4['user_stats']) == 4
    assert output4['user_stats']['channels_joined'][-1][
        'num_channels_joined'] == 0
    assert output4['user_stats']['dms_joined'][-1]['num_dms_joined'] == 1
    assert output4['user_stats']['messages_sent'][-1]['num_messages_sent'] == 0
    assert output4['user_stats']['involvement_rate'] == 1 / 7

    assert len(dreams['dreams_stats']) == 4
    assert dreams['dreams_stats']['channels_exist'][-1][
        'num_channels_exist'] == 2
    assert dreams['dreams_stats']['dms_exist'][-1]['num_dms_exist'] == 2
    assert dreams['dreams_stats']['messages_exist'][-1][
        'num_messages_exist'] == 3
    assert dreams['dreams_stats']['utilization_rate'] == 4 / 5
    clear_v1()