示例#1
0
    def test_no_unknown_args(self):
        parser = argparse.ArgumentParser()
        parser.add_argument('-R', '--release', action='store_true')
        parser.add_argument('-T', '--validation-test', action='store_true')
        parser.add_argument('--darwin-xcrun-toolchain')

        args = migration.parse_args(parser,
                                    ['-RT', '--darwin-xcrun-toolchain=bar'])

        expected = argparse.Namespace(release=True,
                                      validation_test=True,
                                      darwin_xcrun_toolchain='bar',
                                      build_script_impl_args=[])

        self.assertEqual(args, expected)
示例#2
0
    def test_forward_impl_args(self):
        parser = argparse.ArgumentParser()
        parser.add_argument('--skip-test-swift',
                            dest='impl_skip_test_swift',
                            action='store_true')
        parser.add_argument('--install-swift',
                            dest='impl_install_swift',
                            action='store_true')

        args = migration.parse_args(parser,
                                    ['--skip-test-swift', '--install-swift'])

        expected = argparse.Namespace(
            build_script_impl_args=['--skip-test-swift', '--install-swift'])

        self.assertEqual(args, expected)
示例#3
0
    def parse_args_and_unknown_args(self, args, namespace=None):
        if namespace is None:
            namespace = argparse.Namespace()

        with utils.quiet_output():
            try:
                namespace, unknown_args = (
                    super(self.parser.__class__, self.parser).parse_known_args(
                        args, namespace))
                namespace, unknown_args = (
                    migration._process_disambiguation_arguments(
                        namespace, unknown_args))
            except (SystemExit, argparse.ArgumentError) as e:
                raise ParserError('failed to parse arguments: {}'.format(
                    six.text_type(args), e))

        return namespace, unknown_args