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)
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)
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