def _run_test_complete_on_exit(f):
 def wrapped(self, *args, **dargs):
  try:
   return f(self, *args, **dargs)
  finally:
   if (self._logger.global_filename == 'status'):
    self.harness.run_test_complete()
    if self.drop_caches:
     utils_memory.drop_caches()
 wrapped.__name__ = f.__name__
 wrapped.__doc__ = f.__doc__
 wrapped.__dict__.update(f.__dict__)
 return wrapped

def _run_test_complete_on_exit ( f ) : def wrapped ( self , * args , ** dargs ) : try : return f ( self , * args , ** dargs ) finally : if ( self . _logger . global_filename == 'status' ) : self . harness . run_test_complete ( ) if self . drop_caches : utils_memory . drop_caches ( ) wrapped . __name__ = f . __name__ wrapped . __doc__ = f . __doc__ wrapped . __dict__ . update ( f . __dict__ ) return wrapped
decorator for job methods that automatically calls self .