def test_message_react_invalid_react(): a_token = login('*****@*****.**', 'pass123456')[1] msg1_id = message_send(a_token, 1, 'a second test message') with pytest.raises(HTTPError): message_react(a_token, msg1_id, 2) logout(a_token)
def test_login_user(reset): reg_token = register('*****@*****.**', 'wubbalubba', 'Max', 'Smith')[1] logout(reg_token) login_token = login('*****@*****.**', 'wubbalubba')[1] assert reg_token == login_token success = logout(login_token) assert success == True
def test_channels_listall_empty(reset): # pylint: disable=unused-argument,redefined-outer-name ''' Testing return of empty payload when no channels exist ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] assert channels_listall(a_token) == [] logout(a_token)
def test_message_unreact_no_existing_react(reset): a_token = register('*****@*****.**', 'pass123456', 'Admin', 'Heeblo')[1] channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, 1, 'I am new here.') with pytest.raises(HTTPError): message_unreact(a_token, msg0_id, 1) logout(a_token)
def test_user_profile_does_not_exist(): ''' user does not exist ''' j_id, j_token = login("*****@*****.**", "cre4t1v3p4s5") with pytest.raises(HTTPError): user_profile(j_token, j_id + 1) logout(j_token)
def test_message_unpin_not_pinned(reset): a_token = register('*****@*****.**', 'pass123456', 'Admin', 'Heeblo')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'Not pinned message') with pytest.raises(HTTPError): message_unpin(a_token, msg0_id) logout(a_token)
def test_message_send_invalid_token(): ''' Testing requesting with invalid token ''' a_token = login('*****@*****.**', 'pass123456')[1] with pytest.raises(HTTPError): message_send(a_token + 'x', 1, 'Hello world') logout(a_token)
def test_message_sendlater_badtime(): ''' Testing message send later request with time_sent in the past ''' a_token = login('*****@*****.**', 'pass123456')[1] with pytest.raises(HTTPError): message_sendlater(a_token, 1, 'sending later', time.time() - 0.01) logout(a_token)
def test_message_pin_not_owner_tries(): c_token = register('*****@*****.**', 'ssap12652', 'Chen', 'Bee')[1] channel_join(c_token, 1) msg1_id = message_send(c_token, 1, 'My own message') with pytest.raises(HTTPError): message_pin(c_token, msg1_id) logout(c_token)
def test_message_send_invalid_message(): ''' Testing sending an invalid message ''' a_token = login('*****@*****.**', 'pass123456')[1] with pytest.raises(HTTPError): message_send(a_token, 1, 'a' * 1001) logout(a_token)
def test_message_send_not_in_channel(): ''' Testing requesting to send message when not in channel ''' k_token = register('*****@*****.**', 'kenis123', 'Ken', 'Li')[1] with pytest.raises(HTTPError): message_send(k_token, 1, 'Bad message') logout(k_token)
def test_message_unreact_not_in_channel(): c_token = register('*****@*****.**', 'ssap12652', 'Chen', 'Bee')[1] channel_join(c_token, 1) msg1_id = message_send(c_token, 1, 'I am new here.') message_react(c_token, msg1_id, 1) channel_leave(c_token, 1) with pytest.raises(HTTPError): message_unreact(c_token, 1, 1) logout(c_token)
def test_channels_list_invalid_token(): ''' Testing invalid token ''' a_token = login('*****@*****.**', 'pass123456')[1] # chuck in invalid token with pytest.raises(HTTPError): channels_list(a_token + 'invalid') logout(a_token)
def test_channels_create_bad(): ''' Testing invalid inputs (e.g. name too long) will be picked up and thrown error ''' a_token = login('*****@*****.**', 'pass123456')[1] with pytest.raises(HTTPError): channels_create(a_token, 225, True) # for next test logout(a_token)
def test_channels_list_empty(reset): # pylint: disable=unused-argument,redefined-outer-name ''' no channels created yet ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] payload = channels_list(a_token) # check the list is empty assert payload == [] logout(a_token)
def test_message_unpin_invalid_message(reset): a_token = register('*****@*****.**', 'pass123456', 'Admin', 'Heeblo')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'Pin this message') # pins the message message_pin(a_token, msg0_id) with pytest.raises(HTTPError): message_unpin(a_token, msg0_id + 1) logout(a_token)
def test_message_pin_owner(reset): a_token = register('*****@*****.**', 'pass123456', 'Admin', 'Heeblo')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'Pin this message') # pins the message message_pin(a_token, msg0_id) msg_list = channel_messages(a_token, channel_id, 0)[0] assert msg_list[0]['is_pinned'] logout(a_token)
def test_message_remove_twice(reset): a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'test message to be removed') message_remove(a_token, msg0_id) with pytest.raises(HTTPError): message_remove(a_token, 0) logout(a_token)
def test_message_unreact_own(reset): a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'test message please react') message_react(a_token, msg0_id, 1) # unreacting message_unreact(a_token, msg0_id, 1) msg_list = channel_messages(a_token, channel_id, 0)[0] assert msg_list[0]['reacts'][0]['u_ids'] == [] logout(a_token)
def test_message_react_already_reacted(): a_token = login('*****@*****.**', 'pass123456')[1] channel_id_priv = channels_create(a_token, 'test_private', False) msg1_id = message_send(a_token, channel_id_priv, 'test message please react') message_react(a_token, msg1_id, 1) with pytest.raises(HTTPError): message_react(a_token, msg1_id, 1) logout(a_token)
def test_message_sendlater_invalid_token(): ''' Testing requesting with invalid token ''' a_token = login('*****@*****.**', 'pass123456')[1] channel_id = channels_create(a_token, 'test_public', True) with pytest.raises(HTTPError): message_sendlater(a_token + 'x', channel_id, 'Hello world', time.time() + 1) logout(a_token)
def test_message_sendlater_not_in_channel(reset): ''' Testing requesting to send message later when not in channel ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) k_token = register('*****@*****.**', 'kenis123', 'Ken', 'Li')[1] with pytest.raises(HTTPError): message_sendlater(k_token, channel_id, 'Bad message', time.time() + 1) logout(a_token)
def test_message_sendlater_ok(reset): ''' Testing message send later request ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) msg_id = message_sendlater(a_token, channel_id, 'sending later', time.time() + 3) assert msg_id == 2 # hangman sends the first message -> next available id is 2 logout(a_token)
def test_message_send_ok(reset): ''' Testing sending a valid message by an authorised user ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) message_send(a_token, channel_id, 'test message') msg_list = channel_messages(a_token, channel_id, 0)[0] assert len(msg_list) == 2 # hangman bot sends a message as well assert msg_list[0]['message'] == 'test message' logout(a_token)
def test_message_pin_owner_pins_user(): a_token = login('*****@*****.**', 'pass123456')[1] k_token = register('*****@*****.**', 'kenis123', 'Ken', 'Li')[1] channel_join(k_token, 1) msg1_id = message_send(k_token, 1, 'User message') # user a pins user k's message message_pin(a_token, msg1_id) msg_list = channel_messages(a_token, 1, 0)[0] assert msg_list[0]['is_pinned'] and msg_list[1]['is_pinned'] logout(a_token) logout(k_token)
def test_channels_create_ok(reset): # pylint: disable=unused-argument,redefined-outer-name ''' Testing creating a channel with correct inputs functions correctly ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) payload = channels_list(a_token) # asserting assert channel_id == 1 assert len(payload) == 1 assert payload[0]['channel_id'] == 1 assert payload[0]['name'] == 'test_public' logout(a_token)
def test_channels_list_ok(): ''' single channel created by admin ''' a_token = login('*****@*****.**', 'pass123456')[1] channels_create(a_token, 'test_public', True) payload = channels_list(a_token) # check now channel list includes the new channel assert payload == [{ 'channel_id': 1, 'name': 'test_public', }] logout(a_token)
def test_message_unpin_not_channel_owner(reset): a_token = register('*****@*****.**', 'pass123456', 'Admin', 'Heeblo')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'Pin this message') # pins the message message_pin(a_token, msg0_id) # make another user who is part of channel but not owner nor slackr owner u_token = register('*****@*****.**', 'usersweakpw', 'Bob', 'Builder')[1] channel_join(u_token, channel_id) with pytest.raises(HTTPError): message_unpin(u_token, msg0_id) logout(a_token)
def test_message_sendlater_threading(reset): ''' Testing other requests can be processed concurrently without disturbing sendlater ''' k_token = register('*****@*****.**', 'kenis123', 'Ken', 'Li')[1] channel_id = channels_create(k_token, 'test_public', True) message_sendlater(k_token, channel_id, 'sending later', time.time() + 1) message_send(k_token, channel_id, 'test message0') message_send(k_token, channel_id, 'test message1') time.sleep(2) msg_list = channel_messages(k_token, channel_id, 0)[0] assert len(msg_list) == 4 # hangman sends a message as well assert msg_list[0]['message'] == 'sending later' logout(k_token)
def test_message_remove_own(reset): ''' Testing removing a valid message by a valid authorised user ''' a_token = register('*****@*****.**', 'pass123456', 'Alan', 'Brown')[1] channel_id = channels_create(a_token, 'test_public', True) msg0_id = message_send(a_token, channel_id, 'test message to be removed') # check list is now empty after removal message_remove(a_token, msg0_id) message_send(a_token, channel_id, 'new_test_message') msg_list = channel_messages(a_token, channel_id, 0)[0] assert len(msg_list) == 2 # hangman bot sends a message as well.. assert msg_list[0]['message'] == 'new_test_message' logout(a_token)