コード例 #1
0
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}
コード例 #2
0
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")
コード例 #3
0
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()
コード例 #4
0
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()
コード例 #5
0
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")