def run_object(self, obj):
        """Run a test object (object with run() function or method).

        Arguments:
            obj:
                A Python test object.    This object must have a `run()` function
                or method that takes a configuration object as it's single
                parameter. It should also have a `test_name` attribute.

        Messages:
            May send any of the following messages to the report object:
                RUNNERARGUMENTS:
                    command-line arguments given to test runner.
                logfile:
                    name of the log file from the configuration.
                COMMENT:
                    User supplied comment given when test object was invoked.
                RUNNERSTART:
                    Timestamp when test runner started.
                RUNNEREND:
                    Timestamp when test runner ends.
                add_url:
                    Location where any generated data files, logs, and reports can
                    be found.

        """
        cf = self.config
        basename = "_".join(obj.test_name.split("."))
        cf.reportfilename = basename
        cf.logbasename = basename + "-" + cf.runnertimestamp + ".log"
        # resultsdir is where you would place any resulting data files. This
        # is also where any report object or log files are placed.
        cf.resultsdir = os.path.join(
            os.path.expandvars(cf.get("resultsdirbase", "/var/tmp")),
            "%s-%s-%s" % (cf.reportfilename, cf.username, cf.runnertimestamp))
        cf.evalupdate(cf.options_override)
        self._create_results_dir()
        self._set_report_url()
        cf.report.logfile(cf.logfilename)
        # run the test object!
        return obj.run(cf)
dataset/ETHPy150Open kdart/pycopia/QA/pycopia/QA/testrunner.py/TestRunner.run_object/original