Example #1
0
def make_parser():
    """creates the OptionParser instance
    """
    from optparse import OptionParser
    parser = OptionParser(usage=PYTEST_DOC)

    parser.newargs = []
    def rebuild_cmdline(option, opt, value, parser):
        """carry the option to unittest_main"""
        parser.newargs.append(opt)
        

    def rebuild_and_store(option, opt, value, parser):
        """carry the option to unittest_main and store
        the value on current parser
        """
        parser.newargs.append(opt)
        setattr(parser.values, option.dest, True)

    # pytest options
    parser.add_option('-t', dest='testdir', default=None,
                      help="directory where the tests will be found")
    parser.add_option('-d', dest='dbc', default=False,
                      action="store_true", help="enable design-by-contract")
    # unittest_main options provided and passed through pytest
    parser.add_option('-v', '--verbose', callback=rebuild_cmdline,
                      action="callback", help="Verbose output")
    parser.add_option('-i', '--pdb', callback=rebuild_and_store,
                      dest="pdb", action="callback",
                      help="Enable test failure inspection (conflicts with --coverage)")
    parser.add_option('-x', '--exitfirst', callback=rebuild_and_store,
                      dest="exitfirst",
                      action="callback", help="Exit on first failure "
                      "(only make sense when pytest run one test file)")
    parser.add_option('-c', '--capture', callback=rebuild_cmdline,
                      action="callback", 
                      help="Captures and prints standard out/err only on errors "
                      "(only make sense when pytest run one test file)")
    parser.add_option('-p', '--printonly',
                      # XXX: I wish I could use the callback action but it
                      #      doesn't seem to be able to get the value
                      #      associated to the option
                      action="store", dest="printonly", default=None,
                      help="Only prints lines matching specified pattern (implies capture) "
                      "(only make sense when pytest run one test file)")
    parser.add_option('-s', '--skip',
                      # XXX: I wish I could use the callback action but it
                      #      doesn't seem to be able to get the value
                      #      associated to the option
                      action="store", dest="skipped", default=None,
                      help="test names matching this name will be skipped "
                      "to skip several patterns, use commas")
    parser.add_option('-q', '--quiet', callback=rebuild_cmdline,
                      action="callback", help="Minimal output")
    parser.add_option('-P', '--profile', default=None, dest='profile',
                      help="Profile execution and store data in the given file")

    try:
        from clonedigger.logilab.devtools.lib.coverage import Coverage
        parser.add_option('--coverage', dest="coverage", default=False,
                          action="store_true",
                          help="run tests with pycoverage (conflicts with --pdb)")
    except ImportError:
        pass

    if DJANGO_FOUND:
        parser.add_option('-J', '--django', dest='django', default=False,
                          action="store_true",
                          help='use pytest for django test cases')
    return parser
Example #2
0
def make_parser():
    """creates the OptionParser instance
    """
    from optparse import OptionParser
    parser = OptionParser(usage=PYTEST_DOC)

    parser.newargs = []

    def rebuild_cmdline(option, opt, value, parser):
        """carry the option to unittest_main"""
        parser.newargs.append(opt)

    def rebuild_and_store(option, opt, value, parser):
        """carry the option to unittest_main and store
        the value on current parser
        """
        parser.newargs.append(opt)
        setattr(parser.values, option.dest, True)

    def capture_and_rebuild(option, opt, value, parser):
        warnings.simplefilter('ignore', DeprecationWarning)
        rebuild_cmdline(option, opt, value, parser)

    # pytest options
    parser.add_option('-t',
                      dest='testdir',
                      default=None,
                      help="directory where the tests will be found")
    parser.add_option('-d',
                      dest='dbc',
                      default=False,
                      action="store_true",
                      help="enable design-by-contract")
    # unittest_main options provided and passed through pytest
    parser.add_option('-v',
                      '--verbose',
                      callback=rebuild_cmdline,
                      action="callback",
                      help="Verbose output")
    parser.add_option(
        '-i',
        '--pdb',
        callback=rebuild_and_store,
        dest="pdb",
        action="callback",
        help="Enable test failure inspection (conflicts with --coverage)")
    parser.add_option('-x',
                      '--exitfirst',
                      callback=rebuild_and_store,
                      dest="exitfirst",
                      default=False,
                      action="callback",
                      help="Exit on first failure "
                      "(only make sense when pytest run one test file)")
    parser.add_option(
        '-R',
        '--restart',
        callback=rebuild_and_store,
        dest="restart",
        default=False,
        action="callback",
        help="Restart tests from where it failed (implies exitfirst) "
        "(only make sense if tests previously ran with exitfirst only)")
    parser.add_option(
        '-c',
        '--capture',
        callback=capture_and_rebuild,
        action="callback",
        help="Captures and prints standard out/err only on errors "
        "(only make sense when pytest run one test file)")
    parser.add_option('--color',
                      callback=rebuild_cmdline,
                      action="callback",
                      help="colorize tracebacks")
    parser.add_option(
        '-p',
        '--printonly',
        # XXX: I wish I could use the callback action but it
        #      doesn't seem to be able to get the value
        #      associated to the option
        action="store",
        dest="printonly",
        default=None,
        help="Only prints lines matching specified pattern (implies capture) "
        "(only make sense when pytest run one test file)")
    parser.add_option(
        '-s',
        '--skip',
        # XXX: I wish I could use the callback action but it
        #      doesn't seem to be able to get the value
        #      associated to the option
        action="store",
        dest="skipped",
        default=None,
        help="test names matching this name will be skipped "
        "to skip several patterns, use commas")
    parser.add_option('-q',
                      '--quiet',
                      callback=rebuild_cmdline,
                      action="callback",
                      help="Minimal output")
    parser.add_option(
        '-P',
        '--profile',
        default=None,
        dest='profile',
        help="Profile execution and store data in the given file")
    parser.add_option(
        '-m',
        '--match',
        default=None,
        dest='tags_pattern',
        help="only execute test whose tag match the current pattern")

    try:
        from logilab.devtools.lib.coverage import Coverage
        parser.add_option(
            '--coverage',
            dest="coverage",
            default=False,
            action="store_true",
            help="run tests with pycoverage (conflicts with --pdb)")
    except ImportError:
        pass

    if DJANGO_FOUND:
        parser.add_option('-J',
                          '--django',
                          dest='django',
                          default=False,
                          action="store_true",
                          help='use pytest for django test cases')
    return parser
Example #3
0
def make_parser():
    """creates the OptionParser instance
    """
    from optparse import OptionParser
    parser = OptionParser(usage=PYTEST_DOC)

    parser.newargs = []
    def rebuild_cmdline(option, opt, value, parser):
        """carry the option to unittest_main"""
        parser.newargs.append(opt)

    def rebuild_and_store(option, opt, value, parser):
        """carry the option to unittest_main and store
        the value on current parser
        """
        parser.newargs.append(opt)
        setattr(parser.values, option.dest, True)

    def capture_and_rebuild(option, opt, value, parser):
        warnings.simplefilter('ignore', DeprecationWarning)
        rebuild_cmdline(option, opt, value, parser)

    # pytest options
    parser.add_option('-t', dest='testdir', default=None,
                      help="directory where the tests will be found")
    parser.add_option('-d', dest='dbc', default=False,
                      action="store_true", help="enable design-by-contract")
    # unittest_main options provided and passed through pytest
    parser.add_option('-v', '--verbose', callback=rebuild_cmdline,
                      action="callback", help="Verbose output")
    parser.add_option('-i', '--pdb', callback=rebuild_and_store,
                      dest="pdb", action="callback",
                      help="Enable test failure inspection")
    parser.add_option('-x', '--exitfirst', callback=rebuild_and_store,
                      dest="exitfirst", default=False,
                      action="callback", help="Exit on first failure "
                      "(only make sense when pytest run one test file)")
    parser.add_option('-R', '--restart', callback=rebuild_and_store,
                      dest="restart", default=False,
                      action="callback",
                      help="Restart tests from where it failed (implies exitfirst) "
                        "(only make sense if tests previously ran with exitfirst only)")
    parser.add_option('--color', callback=rebuild_cmdline,
                      action="callback",
                      help="colorize tracebacks")
    parser.add_option('-s', '--skip',
                      # XXX: I wish I could use the callback action but it
                      #      doesn't seem to be able to get the value
                      #      associated to the option
                      action="store", dest="skipped", default=None,
                      help="test names matching this name will be skipped "
                      "to skip several patterns, use commas")
    parser.add_option('-q', '--quiet', callback=rebuild_cmdline,
                      action="callback", help="Minimal output")
    parser.add_option('-P', '--profile', default=None, dest='profile',
                      help="Profile execution and store data in the given file")
    parser.add_option('-m', '--match', default=None, dest='tags_pattern',
                      help="only execute test whose tag match the current pattern")

    if DJANGO_FOUND:
        parser.add_option('-J', '--django', dest='django', default=False,
                          action="store_true",
                          help='use pytest for django test cases')
    return parser