'Accepts arguments for the decorator.
Args:
msg - The example message to give to the function as input.
result - Resulting output from calling the function with msg.
privmsg - If true, make the message appear to have sent in a
private message to the bot. If false, make it appear to have
come from a channel.
admin - Bool. Make the message appear to have come from an admin.
owner - Bool. Make the message appear to have come from an owner.
repeat - How many times to repeat the test. Usefull for tests that
return random stuff.
re - Bool. If true, result is interpreted as a regular expression.
ignore - a list of outputs to ignore.'

def __init__(self, msg, result=None, privmsg=False, admin=False, owner=False, repeat=1, re=False, ignore=None):

    if isinstance(result, list):
        self.result = result
    elif (result is not None):
        self.result = [result]
    else:
        self.result = None
    self.use_re = re
    self.msg = msg
    self.privmsg = privmsg
    self.admin = admin
    self.owner = owner
    self.repeat = repeat
    if isinstance(ignore, list):
        self.ignore = ignore
    elif (ignore is not None):
        self.ignore = [ignore]
    else:
        self.ignore = []
