Пример #1
0
class TestOptionGroup(BaseTest):
    def setUp(self):
        self.parser = OptionParser(usage=SUPPRESS_USAGE)

    def test_option_group_create_instance(self):
        group = OptionGroup(self.parser, "Spam")
        self.parser.add_option_group(group)
        group.add_option("--spam", action="store_true", help="spam spam spam spam")
        self.assertParseOK(["--spam"], {"spam": 1}, [])

    def test_add_group_no_group(self):
        self.assertTypeError(self.parser.add_option_group, "not an OptionGroup instance: None", None)

    def test_add_group_invalid_arguments(self):
        self.assertTypeError(self.parser.add_option_group, "invalid arguments", None, None)

    def test_add_group_wrong_parser(self):
        group = OptionGroup(self.parser, "Spam")
        group.parser = OptionParser()
        self.assertRaises(
            self.parser.add_option_group, (group,), None, ValueError, "invalid OptionGroup (wrong parser)"
        )

    def test_group_manipulate(self):
        group = self.parser.add_option_group("Group 2", description="Some more options")
        group.set_title("Bacon")
        group.add_option("--bacon", type="int")
        self.assert_(self.parser.get_option_group("--bacon"), group)
Пример #2
0
class TestOptionGroup(BaseTest):
    def setUp(self):
        self.parser = OptionParser(usage=SUPPRESS_USAGE)

    def test_option_group_create_instance(self):
        group = OptionGroup(self.parser, "Spam")
        self.parser.add_option_group(group)
        group.add_option("--spam",
                         action="store_true",
                         help="spam spam spam spam")
        self.assertParseOK(["--spam"], {'spam': 1}, [])

    def test_add_group_no_group(self):
        self.assertTypeError(self.parser.add_option_group,
                             "not an OptionGroup instance: None", None)

    def test_add_group_invalid_arguments(self):
        self.assertTypeError(self.parser.add_option_group, "invalid arguments",
                             None, None)

    def test_add_group_wrong_parser(self):
        group = OptionGroup(self.parser, "Spam")
        group.parser = OptionParser()
        self.assertRaises(self.parser.add_option_group,
                          ValueError,
                          "invalid OptionGroup (wrong parser)",
                          funcargs=[group])

    def test_group_manipulate(self):
        group = self.parser.add_option_group("Group 2",
                                             description="Some more options")
        group.set_title("Bacon")
        group.add_option("--bacon", type="int")
        self.assert_(self.parser.get_option_group("--bacon"), group)
Пример #3
0
def main(args=None):
    """CLI script entry point"""
    warnings.showwarning = lambda *args, **kwargs: None
    logging.basicConfig(level=logging.DEBUG, format='[%(asctime)s] %(message)s')
    option_parser = OptionParser(add_help_option=False)
    option_parser.add_option('-?', '--help',
                             action='help')
    add_general_options(option_parser)
    add_auth_options(option_parser)
    add_filter_options(option_parser)

    if not args:
        args = sys.argv

    args = [unicode(arg, locale.nl_langinfo(locale.CODESET)) for arg in args]

    for arg in args:
        print "%r" % arg

    opts, args = option_parser.parse_args(args)

    if opts.debug:
        for handler in logging.root.handlers:
            logging.root.handlers.remove(handler)
        logging.basicConfig(level=logging.DEBUG)

    if opts.password:
        opts.password = getpass.getpass("Password:")

    if opts.replication:
        opts.extra_options += ' --master-data=2'

    filter_optgroup = option_parser.get_option_group('--include-databases')
    filter_options = filter_optgroup.option_list
    
    for opt in filter_options:
        filters = compile_filters(getattr(opts, opt.dest))
        setattr(opts, opt.dest, filters)

    if opts.dry_run:
        dry_run(opts.__dict__)
    else:
        start(opts.__dict__)