def __call__(self, argv):
        cf = self.runner.config


        optlist, extraopts, args = getopt.getopt(argv[1:], "h?")
        for opt, optarg in optlist:
            if opt in ("-h", "-?"):
                print JobRunnerInterfaceDoc % (os.path.basename(argv[0]),)
                return

        cf.evalupdate(extraopts)
        self.runner.set_options(extraopts)

        for testjob in get_test_jobs(args):
            if testjob is None:
                continue
            cf.environmentname = testjob.environment.name
            if self.is_job_running(testjob.id):
                continue
            self.create_job_lock(testjob.id)
            try:
                if testjob.parameters:
                    params = _parse_parameters(testjob.parameters)
                    cf.arguments = testjob.parameters.split()
                else:
                    params = {}
                cf.argv = [testjob.suite.name]
                cf.comment = "Automated test job %s(%s)." % (testjob.name, testjob.id)
                cf.reportname = testjob.reportname
                cf.evalupdate(params)
                self.runner.set_options(params)

                suite = get_suite(testjob.suite, cf)
                self.runner.initialize()
                self.runner.run_object(suite)
                self.runner.finalize()
            finally:
                self.remove_job_lock(testjob.id)
Invoke the job runner by calling it with argument list.
dataset/ETHPy150Open kdart/pycopia/QA/pycopia/QA/jobrunner.py/JobRunnerInterface.__call__