def run(self, commands=None, user=None):
        if commands is None:
            commands = self.commands
        script_name = 'runs/{0}/.ravello/{1}.sh'.format(env.test_id, self.name)
        script = create_script(self.name, commands)
        fab.put(io.StringIO(script), script_name)
        runargs = {'shell': False, 'pty': True, 'warn_only': True}
        show_output = env.debug or (self.interactive and not self.quiet)
        runargs['quiet'] = not show_output
        if user is None:
            user = self.user
        if user:
            invoke = 'sudo -u {user} $SHELL -l {script_name}'
        else:
            invoke = 'exec $SHELL -l {script_name}'
        invoke_args = {'user': user, 'script_name': script_name}
        command = invoke.format(**invoke_args)
        ret = fab.run(command, **runargs)
        self.stdout = ret
        update = io.StringIO()
        remote_name = 'runs/{0}/.ravello/{1}.env-update' \
                    .format(env.test_id, self.name)
        fab.get(remote_name, update)
        update = parse_env_update(update.getvalue())
        self.env_update = update
        self.return_code = ret.return_code
Form requires specification of organization method.
dataset/ETHPy150Open ravello/testmill/lib/testmill/tasks.py/Task.run--crossover with--dataset/ETHPy150Open caktus/django-timepiece/timepiece/reports/tests/test_productivity.py/TestProductivityReport.test_no_organize_by