Example #1
0
def get_options(args=None):
    global _options
    if _options is None:
        if args is None:
            args = sys.argv[1:]

        _options = _get_parser().parse_args(args)
    return _options
Example #2
0
def get_options(args=None):
    global _options
    if _options is None:
        if args is None:
            args = sys.argv[1:]

        _options = _get_parser().parse_args(args)
    return _options
Example #3
0
        for testspec in input_iter:
            if isinstance(testspec, TestResult):
                # test already failed during discovery, probably an
                # import failure
                yield testspec
            else:
                yield run_isolated(testspec, self.args)


if __name__ == '__main__':

    exitcode = 0

    try:
        options = _get_parser().parse_args()
        runner = TestRunner(options)
        for result in runner.get_iter([options.tests[0]]):
            break
        if result.status != 'OK':
            sys.stderr.write(result.err_msg)
            exitcode = exit_codes[result.status]

        save_coverage()

    except:
        sys.stderr.write(traceback.format_exc())
        exitcode = exit_codes['FAIL']

    finally:
        sys.stdout.flush()
Example #4
0
def main(args=None):
    global runner

    if args is None:
        args = sys.argv[1:]

    options = _get_parser().parse_args(args)

    options.skip_dirs = []

    # read user prefs from ~/.testflo file.  create one if it
    # isn't there
    homedir = os.path.expanduser('~')
    rcfile = os.path.join(homedir, '.testflo')
    if not os.path.isfile(rcfile):
        with open(rcfile, 'w') as f:
            f.write("""[testflo]
skip_dirs=site-packages,
    dist-packages,
    build,
    contrib
""" )
    read_config_file(rcfile, options)
    if options.cfg:
        read_config_file(options.cfg, options)

    tests = options.tests
    if options.testfile:
        tests += list(read_test_file(options.testfile))

    if not tests:
        tests = [os.getcwd()]

    def dir_exclude(d):
        for skip in options.skip_dirs:
            if fnmatch(os.path.basename(d), skip):
                return True
        return False

    setup_coverage(options)
    setup_profile(options)

    with open(options.outfile, 'w') as report:
        pipeline = [
            TestDiscoverer(dir_exclude=dir_exclude).get_iter,
        ]

        if options.dryrun:
            pipeline.extend([
                dryrun,
            ])
        else:
            if options.isolated:
                try:
                    import mpi4py
                except ImportError:
                    runner = IsolatedTestRunner(options, args)
                else:
                    from testflo.mpi import IsolatedMPITestRunner
                    runner = IsolatedMPITestRunner(options, args)
            else:
                runner = ConcurrentTestRunner(options)

            pipeline.append(runner.get_iter)

            pipeline.extend([
                ResultPrinter(verbose=options.verbose).get_iter,
                ResultSummary().get_iter,
            ])
            if not options.noreport:
                # mirror results and summary to a report file
                pipeline.extend([
                    ResultPrinter(report, verbose=options.verbose).get_iter,
                    ResultSummary(report).get_iter,
                ])

        if options.maxtime > 0:
            pipeline.append(TimeFilter(options.maxtime).get_iter)

        retval = run_pipeline(tests, pipeline)

        finalize_coverage(options)
        finalize_profile(options)

        return retval