def start(u_id, channel_id, message, message_id): """ Checks if no standups are in progess and initiates hangman """ # Check can start validation.check_can_start_hangman(channel_id) msg = message['message'] buffer = len('/hangman start ') word = msg[buffer:].lower() #word = ''.join(msg.split(' ')[2:]).lower() # Check valid word validation.check_valid_word(word) # Updates hangman info with that word info = data.get_hangman_info(channel_id) update_info(info, u_id, message_id, word) # Prints hangman starting message message['message'] = print_start(info) data.add_message(message, channel_id) message_info = data.get_message(channel_id, message_id) message_info['is_pinned'] = True return {'message_id': message_id}
def check_is_pinned(message_id): """ Checks if message is already pinned Parameters: message_id(int): The message_id of the channel being checked Returns: Nothing """ chan = data.get_channel_from_message(message_id) message = data.get_message(chan, message_id) if not message['is_pinned']: raise InputError(description="Message is not currently pinned")
def test_edit_message(): """ Remove_message always returns None, but we can test it by checking if the number of messages changes after remove_message is run. """ # Need user token so can't use user1 pytest fixture user = auth.auth_register("*****@*****.**", "in pajamas", "are", "coming") chan1 = channels.channels_create(user["token"], "down", True) mess1 = message.message_send(user["token"], chan1["channel_id"], "the stairs") assert data.get_message_num() == 1 new_message = "through the door" assert data.edit_message(chan1["channel_id"], mess1["message_id"],new_message) == None message_info = data.get_message(chan1["channel_id"], mess1["message_id"]) assert message_info["message"] == new_message assert data.get_message_num() == 1 other.clear()
def test_get_message(channel1): """ Given channel containing message and message_id, returns dictionary containing message info """ channel_id = channel1["channel_id"] message_text = "G\'day" user2 = auth.auth_register("*****@*****.**", "123password", "Elliot", "Rotensttein") channel.channel_join(user2["token"], channel_id) sent_message = message.message_send(user2["token"], channel_id, message_text) message_info = data.get_message(channel_id, sent_message["message_id"]) assert message_info["message_id"] == sent_message["message_id"] assert message_info["message"] == message_text assert message_info["u_id"] == user2["u_id"] other.clear()
def find_channel_with_message(message_id, u_id): """ Will go through every channel and if message_in_channel returns a channel it will return it otherwise it raises an Input Error Parameters: message_id(string): The id of the message being searched for user_id(string): The id of the user searching for the message it will return an access error if the user is not an owner of the channel or creator of the message Returns: channel(channel dictionary): If the channel was found it will return the channel dictionary """ channel_id = data.find_channel(message_id) message = data.get_message(channel_id, message_id) if message["u_id"] == u_id or data.check_channel_owner(channel_id, u_id): return channel_id raise AccessError(description="User is not creator or owner")