def __init__(self, name, function, **kwargs):
self.name = name<EOL>self.phase = kwargs.get("<STR_LIT>", constants.DEFAULT_TEST_PHASE)<EOL>self.repeat_per_loop = kwargs.get("<STR_LIT>", constants.DEFAULT_ITERATION)<EOL>self.total_number_iterations = self.repeat_per_loop<EOL>self.current_iteration = <NUM_LIT:0><EOL>self.consecutive_failures = <NUM_LIT:0><EOL>self.function = function<EOL>self.validation_function = kwargs.get("<STR_LIT>", None)<EOL>if '<STR_LIT>' in kwargs:<EOL><INDENT>self.setup = kwargs.get('<STR_LIT>')<EOL><DEDENT>if '<STR_LIT>' in kwargs:<EOL><INDENT>self.teardown = kwargs.get('<STR_LIT>')<EOL><DEDENT>self.description = function.__doc__<EOL>if self.validation_function.__doc__  is not None:<EOL><INDENT>if self.description is not None:<EOL><INDENT>self.description = "<STR_LIT>".format(self.description, self.validation_function.__doc__)<EOL><DEDENT>else:<EOL><INDENT>self.description = self.validation_function.__doc__<EOL><DEDENT><DEDENT>self.func_start_time = None<EOL>self.func_end_time = None<EOL>self.start_time = None<EOL>self.end_time = None<EOL>self.result = None<EOL>self.iteration_results = {}<EOL>self.exception = None<EOL>self.naarad_config = None<EOL>self.naarad_id = None<EOL>self.naarad_stats = None<EOL>self.sla_objs = None<EOL>self.message = "<STR_LIT>"<EOL>for i in xrange(self.total_number_iterations):<EOL><INDENT>self.iteration_results[i] = constants.SKIPPED<EOL><DEDENT>
:param name: name of the test
:param function: callback that will be run during test execution