示例#1
0
def test_list_not_member():
    user1 = auth_register("*****@*****.**", "1234567", "John", "Smith")
    channels_create(user1['token'], "name", True)
    user2 = auth_register("*****@*****.**", "1234567", "Jane", "Smith")
    chan_lst2 = channels_list(user2['token'])['channels']
    # Checking that channels_list returns an empty list for user2,
    # as they are not a member of the created channel.
    assert len(chan_lst2) == 0
示例#2
0
def test_chan_create_invalid_name():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")

    with pytest.raises(InputError):
        channels_create(test_user['token'], 'n' * 21, True)
    #Assumption: channels_create raises an InputError if given empty name
    with pytest.raises(InputError):
        channels_create(test_user['token'], '', True)
示例#3
0
def test_chan_create_double():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")
    chan1 = channels_create(test_user['token'], 'name', True)
    chan2 = channels_create(test_user['token'], 'name', False)
    chan3 = channels_create(test_user['token'], 'name', True)
    # Checking that channel_id's are unique
    assert chan1['channel_id'] != chan2['channel_id']
    assert chan1['channel_id'] != chan3['channel_id']
示例#4
0
def test_listall_private():
    user1 = auth_register("*****@*****.**", "1234567", "John", "Smith")
    channels_create(user1['token'], "name", False)
    user2 = auth_register("*****@*****.**", "1234567", "Jane", "Smith")
    chan_lst1 = channels_listall(user1['token'])['channels']
    chan_lst2 = channels_listall(user2['token'])['channels']
    # Checking that channels_listall returns the same list for user2,
    assert len(chan_lst1) == len(chan_lst2) == 1
    assert chan_lst1 == chan_lst2
示例#5
0
def test_chan_create_invalid_token():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")
    token = test_user['token']
    assert auth_logout(token)  #invalidating token
    with pytest.raises(AccessError):
        auth_logout(token)  #confirming that token is an invalid token

    with pytest.raises(AccessError):
        channels_create(token, 'name', True)
示例#6
0
def test_searching_multiple_channels():
    '''search should find all messages containing the query string regardless of channel'''
    andrew = auth_register("*****@*****.**", "password", "andrew", "taylor")
    new_channel_a = channels_create(andrew['token'], "channel_a", True)
    new_channel_b = channels_create(andrew['token'], "channel_b", True)
    message_send(andrew['token'], new_channel_a['channel_id'],
                 f'this is a test message in channel a')
    message_send(andrew['token'], new_channel_b['channel_id'],
                 f'this is a test message in channel b')
    search_results = search(andrew['token'], 'this is a test message')
    assert isinstance(search_results, dict)
    assert len(search_results['messages']) == 2
示例#7
0
def test_channel_join():
    test_user = auth_register("*****@*****.**", "password", "John",
                              "Smith")
    test_user2 = auth_register("*****@*****.**", "password", "Bob",
                               "Smith")
    test_channel = channels_create(test_user["token"], "test_channel", True)
    channel_join(test_user2["token"], test_channel["channel_id"])
示例#8
0
def test_search_for_multiple_messages():
    '''searching with valid paramters and checking the returned object is correct
        messages_sent is a dictionary of message_ids as keys the message_content as
        the value. This is used to verify that the messages found match the messages
        that were sent.
    '''
    andrew = auth_register("*****@*****.**", "password", "andrew", "taylor")
    new_channel = channels_create(andrew['token'], "channel_1", True)

    messages_sent = {}
    for message_number in range(10):
        message_content = f'this is message number {message_number}'
        new_message_id = message_send(andrew['token'],
                                      new_channel['channel_id'],
                                      message_content)['message_id']
        messages_sent[new_message_id] = message_content

    search_results = search(andrew['token'], 'this is message number')
    assert isinstance(search_results, dict)
    assert len(search_results['messages']) == 10
    for message in search_results['messages']:
        assert isinstance(message, dict)
        assert 'message_id' in message
        assert isinstance(message['message_id'], int)
        assert 'u_id' in message
        assert isinstance(message['u_id'], int)
        assert 'message' in message
        assert isinstance(message['message'], str)
        assert message['message'] == messages_sent[message['message_id']]
        assert 'time_created' in message
        assert isinstance(message['time_created'], int)
示例#9
0
def test_chan_create_return():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")
    chan1 = channels_create(test_user['token'], 'name', True)
    assert isinstance(chan1, dict)
    assert 'channel_id' in chan1.keys()
    assert isinstance(chan1['channel_id'], int)
示例#10
0
def test_listall_return_two():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")
    channel1_name = 'My Channel'
    channel2_name = 'My Second Channel'
    channel1 = channels_create(test_user['token'], channel1_name, True)
    channel2 = channels_create(test_user['token'], channel2_name, False)
    chan_lst = channels_listall(test_user['token'])['channels']
    assert len(chan_lst) == 2
    channel1_details = chan_lst[0]
    channel2_details = chan_lst[1]
    assert channel1['channel_id'] == channel1_details['channel_id']
    assert channel1_name == channel1_details['name']
    # Checking that channel2's details match
    assert channel2['channel_id'] == channel2_details['channel_id']
    assert channel2_name == channel2_details['name']
示例#11
0
def test_channel_leave_invalid_token():
    test_user = auth_register("*****@*****.**", "password", "John",
                              "Smith")
    test_channel = channels_create(test_user["token"], "test_channel", True)
    auth_logout(test_user["token"])  # Invalidating token
    with pytest.raises(AccessError):
        channel_leave(test_user["token"], test_channel["channel_id"])
示例#12
0
def test_channel_join_AccessError():
    test_user = auth_register("*****@*****.**", "password", "John",
                              "Smith")
    test_user2 = auth_register("*****@*****.**", "password", "Bob",
                               "Smith")
    test_channel = channels_create(test_user["token"], "test_channel", False)
    with pytest.raises(AccessError):
        channel_join(test_user2["token"], test_channel["channel_id"])
示例#13
0
def test_remove_user(new_user, new_user_2):
	glob_users = get_users()
	channel = channels_create(new_user['token'], "new_channel", False)
	channel_invite(new_user['token'], channel['channel_id'], new_user_2['u_id'])
	user_remove(new_user['token'], new_user_2['u_id'])
	assert not new_user_2 in get_channels()[channel['channel_id']]['members']
	with pytest.raises(InputError):
		auth_login(glob_users[new_user_2['u_id']]['email'], glob_users[new_user_2['u_id']]['password_hash'])
示例#14
0
def test_channel_join_InvalidToken():
    test_user = auth_register("*****@*****.**", "password", "John",
                              "Smith")
    test_user2 = auth_register("*****@*****.**", "password", "Bob",
                               "Smith")
    test_channel = channels_create(test_user2["token"], "test_channel", True)
    auth_logout(test_user["token"])  # Invalidating token of user1
    with pytest.raises(AccessError):
        channel_join(test_user["token"], test_channel["channel_id"])
示例#15
0
def test_channel_leave_non_member():
    test_owner_user = auth_register("*****@*****.**", "password", "John",
                                    "Smith")
    test_normal_user = auth_register("*****@*****.**", "password", "Bob",
                                     "Smith")
    test_channel = channels_create(test_owner_user["token"], "test_channel",
                                   True)
    with pytest.raises(AccessError):
        channel_leave(test_normal_user["token"], test_channel["channel_id"])
示例#16
0
def test_application_clean():
    '''
    Tests that all global variables have been emptied by the reset
    '''
    for new_user in range(100):
        user = auth_register("z55555" + str(new_user) + "@unsw.edu.au",
                             "f for hayden rip", "hydaen", "smith")
        channels_create(user['token'], "test channel" + str(new_user), True)
    workspace_reset()
    assert len(get_channels().keys()) == 0
    assert len(get_users().keys()) == 0
    assert len(get_users()) == 0
    assert len(get_slackr_owners()) == 0
    assert len(get_valid_tokens()) == 0
    original_image_folder = os.path.join(os.getcwd(), 'images/original')
    assert len(os.listdir(original_image_folder)) == 1
    cropped_image_folder = os.path.join(os.getcwd(), 'images/cropped')
    assert len(os.listdir(cropped_image_folder)) == 1
示例#17
0
def test_searching_multiple_channels_with_no_access():
    '''search should find all messages containing the query string THAT THE USER HAS ACCESS TO'''
    andrew = auth_register("*****@*****.**", "password", "andrew", "taylor")
    andrews_channel = channels_create(andrew['token'], "andrews channel",
                                      False)
    message_send(andrew['token'], andrews_channel['channel_id'],
                 'this is a test message in andrews channel')

    john = auth_register("*****@*****.**", "password", "john", "smith")
    johns_channel = channels_create(john['token'], "channel_b", False)
    message_send(john['token'], johns_channel['channel_id'],
                 'this is a test message in johns channel')

    andrews_search_results = search(andrew['token'], 'this is a test message')
    assert isinstance(andrews_search_results, dict)
    assert len(andrews_search_results['messages']) == 1

    johns_search_results = search(john['token'], 'this is a test message')
    assert isinstance(johns_search_results, dict)
    assert len(johns_search_results['messages']) == 1
示例#18
0
def test_list_return_one():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")
    channel_name = 'My Channel'
    channel = channels_create(test_user['token'], channel_name, True)
    chan_lst = channels_list(test_user['token'])['channels']
    assert isinstance(chan_lst, list)
    # One channel created. len should be 1
    assert len(chan_lst) == 1
    assert isinstance(chan_lst[0], dict)
    assert 'channel_id' in chan_lst[0].keys()
    assert 'name' in chan_lst[0].keys()
    # Checking that the returned details match the channel that was created
    #Assumption: channels_list lists channels in the order that the the user became a member of them
    assert channel['channel_id'] == chan_lst[0]['channel_id']
    assert channel_name == chan_lst[0]['name']
示例#19
0
def test_search_for_one_message():
    '''searching with valid paramters and checking the returned object is correct'''
    andrew = auth_register("*****@*****.**", "password", "andrew", "taylor")
    new_channel = channels_create(andrew['token'], "channel_1", True)
    new_message = message_send(andrew['token'], new_channel['channel_id'],
                               f'this is a test message')

    search_results = search(andrew['token'], 'test message')
    assert isinstance(search_results, dict)
    assert len(search_results['messages']) == 1
    message = search_results['messages'][0]

    assert isinstance(message, dict)
    assert 'message_id' in message
    assert isinstance(message['message_id'], int)
    assert message['message_id'] == new_message['message_id']
    assert 'u_id' in message
    assert isinstance(message['u_id'], int)
    assert 'message' in message
    assert isinstance(message['message'], str)
    assert 'time_created' in message
    assert isinstance(message['time_created'], int)
示例#20
0
def channels_create_wsgi():
    json = request.get_json()
    return jsonify(
        channels_create(json['token'], json['name'], json['is_public']))
示例#21
0
def new_channel_and_user_2(new_user_2):
    """creates a new user then a new channel and returns a merged dictionary"""
    new_channel_2 = channels_create(new_user_2['token'], "channel_name", False)
    return {**new_channel_2, **new_user_2}
示例#22
0
def channel_dav(user_dav):
    return channels_create(user_dav['token'], "channel_dav", False)
示例#23
0
def test_chan_create_valid():
    test_user = auth_register("*****@*****.**", "1234567", "John",
                              "Smith")
    channels_create(test_user['token'], 'name', True)
    channels_create(test_user['token'], 'name2', False)