'Run a (step) function within the given context'

def _run_step_fn(self, local_vars, fn, args, dargs):

    local_vars['__args'] = args
    local_vars['__dargs'] = dargs
    try:
        exec ('__ret    =    %s(*__args,    **__dargs)' % fn) in local_vars, local_vars
        return local_vars['__ret']
    except SystemExit:
        raise
    except error.TestNAError as detail:
        self.record(detail.exit_status, None, fn, str(detail))
    except Exception as detail:
        raise error.UnhandledJobError(detail)
