def test_standupsend_notmember(): ''' Test standup_send when not a member of the channel ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') standup_start(token, c_id, 60) # SETUP END # Register another user (not part of server) registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] with pytest.raises(AccessError, match=r"*"): standup_send(token, c_id, "hello")
def test_nochannel(): ''' Test sending a message to an invalid/non existent channel ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] # SETUP END with pytest.raises(ValueError, match=r"*No message*"): message_send(token, 5, 'Hello') message_send(token, None, 'Hello')
def test_standupsend_nochannel(): ''' Test standup_send with an invalid channel_id ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] # SETUP END with pytest.raises(ValueError, match=r"*"): standup_send(token, 4, "does not exist")
def test_channel_leave(): ''' The following test's various sections of channel_leave ''' reset_data() # START SETUP token = auth_register('*****@*****.**', 'pass123', 'john', 'apple')['token'] token2 = auth_register('*****@*****.**', 'pass123', 'john2', 'apple2')['token'] channel_id_public = channel_create(token, 'newChannel', 'true') # END SETUP # Invalid channel ID with pytest.raises(ValueError): channel_leave(token, 666) # Invalid token with pytest.raises(AccessError): channel_leave('invalidToken', channel_id_public) # Working channel leave channel_join(token2, channel_id_public) channel_leave(token2, channel_id_public)
def test_long(): ''' Test sending a message over maxmium character limit (1000) ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END with pytest.raises(ValueError, match=r"*Over 1000 characters*"): message_send(token, c_id, 'long message' * 1000) message_send(token, c_id, 'very' * 1001)
def test_nochannel_sendlater(): ''' Test sending a message later when the channel doesn't exist ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] # SETUP END time_sent = t.time() + 10 with pytest.raises(ValueError, match=r"*"): message_sendlater(token, '', 'Hello world', time_sent) message_sendlater(token, '123', 'Hello world', time_sent)
def test_past(): ''' Test sending a message later when the time is in the past ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END time_sent = t.time() - 10 with pytest.raises(ValueError, match=r"*"): message_sendlater(token, c_id, 'Hello world', time_sent)
def test_maximum(): ''' Test sending a message at the maxmium character limit (1000) ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END message_send(token, c_id, 'a' * 1000) message_list = get_messages(c_id) assert 'a' in message_list[0]['message']
def test_standupstart_nochannel(): ''' Test standup with an invalid channel id ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] # SETUP END with pytest.raises(ValueError, match=r"*"): standup_start(token, 3, 60) standup_start(token, '', 60)
def test_sendlater_nomsg(): ''' Test sending a message later with no message ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END time_sent = t.time() + 10 with pytest.raises(ValueError, match=r"*"): message_sendlater(token, c_id, None, time_sent)
def test_standup_active_none(): ''' Test standup_active when there is no active standup ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END assert standup_active(token, c_id) is None
def test_standupsend_nostandup(): ''' Test standup_send when there is no active standup ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END with pytest.raises(ValueError, match=r"*"): standup_send(token, c_id, 60)
def test_user_profile(): reset_data() #SETUP Begin - initialisation of variables for calling the function authRegDict1 = auth_register("*****@*****.**", "qwerty", "John", "Smith") auth_login("*****@*****.**", "qwerty") token1 = authRegDict1['token'] userId1 = authRegDict1['u_id'] #SETUP End #Test Case 1: successful case where calling user_profile returns the desired result assert user_profile(token1, userId1)['email'] == "*****@*****.**" #Test Case 2: Unsuccessful case where an invalid user ID is provided with pytest.raises(ValueError, match='not a valid u_id'): # the uis 10 do not exist user_profile(token1, 10) auth_logout(token1) reset_data()
def test_user_profile_sethandle(): ''' Tests user_profile_sethandle function ''' reset_data() # SETUP START output = auth_register("*****@*****.**", "validPW", "tom", "cruise") u_id = output['u_id'] # SETUP END # Authorised User user_profile_sethandle(server_data.data['users'][u_id]['token'], "newHandle") # Invalid handle with pytest.raises(ValueError): user_profile_sethandle(server_data.data['users'][u_id]['token'], "a" * 21) with pytest.raises(ValueError): user_profile_sethandle(server_data.data['users'][u_id]['token'], "a" * 2)
def test_standup_active(): ''' Test standup_active in a channel with an active standup ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END expected_end = int(t.time()) + 60 standup_start(token, c_id, 60) assert expected_end == standup_active(token, c_id)
def test_standupstart_alreadyexists(): ''' Test standup when another standup is already running in the channel ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END standup_start(token, c_id, 60) with pytest.raises(ValueError, match=r"*"): standup_start(token, c_id, 60)
def test_user_profile_setemail(): ''' Tests user_profile_setemail ''' reset_data() # SETUP START output = auth_register("*****@*****.**", "validPW", "tom", "cruise") u_id = output['u_id'] # SETUP END # Authorised User user_profile_setemail(server_data.data['users'][u_id]['token'], "*****@*****.**") # Invalid email provided with pytest.raises(ValueError): user_profile_setemail(server_data.data['users'][u_id]['token'], "notavalidemail") # Email already being used with pytest.raises(ValueError): user_profile_setemail(server_data.data['users'][u_id]['token'], server_data.data['users'][u_id]['email'])
def test_sendlater_cap(): ''' Test sending a message later at the maximum character limit (1000) ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END # Send message later time_sent = t.time() + 10 message_sendlater(token, c_id, 'a' * 1000, time_sent) # Check message is in the channel message_list = server_data.messages_later print('messages', message_list) assert 'a' in message_list[0]['message']
def test_standupsend_toolong(): ''' Test standup_send when the message is too long ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END standup_start(token, c_id, 60) message = "a" * 1001 with pytest.raises(ValueError, match=r"*"): standup_send(token, c_id, message)
def test_message_edit_empty(): ''' Test edit with an empty input, should delete the message ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # SETUP END # Add two messages message_send(token, c_id, "Hello world!") message_list = get_messages(c_id) assert find_message(message_list, "Hello world!") == "Hello world!" msg1_id = get_message_id(message_list, "Hello world!") message_edit(token, msg1_id, "") message_list = get_messages(c_id) assert find_message(message_list, "Updated message") is None
def test_edit_longmessage(): ''' Test edit when the edit is over the character limit ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # SETUP END # Add two messages message_send(token, c_id, "Hello world!") message_list = get_messages(c_id) msg1_id = get_message_id(message_list, "Hello world!") long_message = "a" * 1001 with pytest.raises(ValueError): message_edit(token, msg1_id, long_message)
def test_remove_no_id(): ''' Test remove when message_id doesn't exist ''' reset_data() # SETUP registered_user = auth_register("*****@*****.**", "123456", "John", "Smith") token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # Add two messages message_send(token, c_id, "Hello world!") message_send(token, c_id, "another message") message_list = get_messages(c_id) assert find_message(message_list, "Hello world!") == "Hello world!" assert find_message(message_list, "another message") == "another message" # SETUP END with pytest.raises(ValueError, match=r"*"): message_remove(token, "123asfawf12") message_remove(token, "")
def test_user_profiles_uploadphoto(): ''' Tests upload photo function ''' reset_data() # SETUP START output = auth_register("*****@*****.**", "validPW", "tom", "cruise")['token'] # SETUP END img = 'https://i.ytimg.com/vi/MPV2METPeJU/maxresdefault.jpg' # Invalid token with pytest.raises(AccessError): user_profiles_uploadphoto("invalidToken", img, 0, 0, 100, 100) # Invalid dimensions too big with pytest.raises(ValueError): user_profiles_uploadphoto(output, img, 0, 0, 9999999, 99999999) # x_start greater than x_end with pytest.raises(ValueError): user_profiles_uploadphoto(output, img, 100, 0, 50, 100) # Fresh look user_profiles_uploadphoto(output, img, 0, 0, 100, 100)
def test_edit_same(): ''' Test edit when the editted message is the same as the original ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # SETUP END # Add two messages message_send(token, c_id, "Hello world") message_list = get_messages(c_id) assert find_message(message_list, "Hello world") == "Hello world" msg1_id = get_message_id(message_list, "Hello world") # SETUP END with pytest.raises(ValueError, match=r"*"): message_edit(token, msg1_id, "Hello world")
def test_unreact_already(): ''' Test message_unreact when the message already has no react ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # SETUP END # Add two messages message_send(token, c_id, "Hello world!") message_list = get_messages(c_id) assert find_message(message_list, "Hello world!") == "Hello world!" msg1_id = get_message_id(message_list, "Hello world!") # SETUP END with pytest.raises(ValueError): message_unreact(token, msg1_id, 1)
def test_users_all(): ''' Tests users_all function''' reset_data() # SETUP START output = auth_register("*****@*****.**", "validPW", "tom", "cruise") u_id = output['u_id'] # SETUP END # Working case assert users_all(server_data.data['users'][u_id]['token']) == { 'users': [{ 'email': '*****@*****.**', 'handle_str': 'tomcruise', 'name_first': 'tom', 'name_last': 'cruise', 'profile_img_url': '', 'u_id': 0 }] } # Invalid token with pytest.raises(AccessError): users_all("abcd")
def test_edit_no_id(): ''' Test edit when the message ID is invalid or doesn't exist ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # SETUP END # Add two messages message_send(token, c_id, "Hello world!") message_send(token, c_id, "another message") message_list = get_messages(c_id) assert find_message(message_list, "Hello world!") == "Hello world!" assert find_message(message_list, "another message") == "another message" # SETUP END with pytest.raises(ValueError, match=r"*"): message_edit(token, "123asfawf12", "update") message_edit(token, "", "there is no message")
def test_edit_cap(): ''' Test edit at the maximum character limit ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, "Channel1", 'true') # SETUP END # Add two messages message_send(token, c_id, "Hello world!") message_list = get_messages(c_id) assert find_message(message_list, "Hello world!") == "Hello world!" msg1_id = get_message_id(message_list, "Hello world!") # SETUP END message_edit(token, msg1_id, "a" * 999) message_list = get_messages(c_id) assert 'a' in message_list[0]['message']
def test_user_profile_setname(): ''' Tests user_profile_setname function ''' reset_data() # SETUP START output = auth_register("*****@*****.**", "validPW", "tom", "cruise") u_id = output['u_id'] # SETUP END # Authorised user user_profile_setname(server_data.data['users'][u_id]['token'], "new", "name") assert server_data.data['users'][u_id]['name_first'] == "new" assert server_data.data['users'][u_id]['name_last'] == "name" # First name too long with pytest.raises(ValueError): user_profile_setname(server_data.data['users'][u_id]['token'], "a" * 51, "a") # Last name too long with pytest.raises(ValueError): user_profile_setname(server_data.data['users'][u_id]['token'], "Tom", "a" * 51)
def test_search_simple(): ''' Test search given a query string ''' reset_data() # SETUP registered_user = auth_register('*****@*****.**', '123456', 'John', 'Smith') token = registered_user['token'] c_id = channel_create(token, 'Channel1', 'true') # SETUP END message_send(token, c_id, 'Hello') message_send(token, c_id, 'Dont find this') return_dic = search(token, "Hello") messages = return_dic['messages'] for message in messages: assert "Hello" in message['message']