mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Issue #28409: regrtest: fix the parser of command line arguments.
This commit is contained in:
parent
5493e4723a
commit
1f6b69b749
3 changed files with 21 additions and 6 deletions
|
@ -325,9 +325,6 @@ def _create_parser():
|
|||
group.add_argument('-P', '--pgo', dest='pgo', action='store_true',
|
||||
help='enable Profile Guided Optimization training')
|
||||
|
||||
parser.add_argument('args', nargs='*',
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
return parser
|
||||
|
||||
def relative_filename(string):
|
||||
|
@ -373,7 +370,13 @@ def _parse_args(args, **kwargs):
|
|||
ns.use_resources = []
|
||||
|
||||
parser = _create_parser()
|
||||
parser.parse_args(args=args, namespace=ns)
|
||||
# Issue #14191: argparse doesn't support "intermixed" positional and
|
||||
# optional arguments. Use parse_known_args() as workaround.
|
||||
ns.args = parser.parse_known_args(args=args, namespace=ns)[1]
|
||||
for arg in ns.args:
|
||||
if arg.startswith('-'):
|
||||
parser.error("unrecognized arguments: %s" % arg)
|
||||
sys.exit(1)
|
||||
|
||||
if ns.single and ns.fromfile:
|
||||
parser.error("-s and -f don't go together!")
|
||||
|
|
|
@ -270,6 +270,16 @@ class ParseArgsTestCase(unittest.TestCase):
|
|||
self.assertEqual(ns.verbose, 0)
|
||||
self.assertEqual(ns.args, ['foo'])
|
||||
|
||||
def test_arg_option_arg(self):
|
||||
ns = regrtest._parse_args(['test_unaryop', '-v', 'test_binop'])
|
||||
self.assertEqual(ns.verbose, 1)
|
||||
self.assertEqual(ns.args, ['test_unaryop', 'test_binop'])
|
||||
|
||||
def test_unknown_option(self):
|
||||
self.checkError(['--unknown-option'],
|
||||
'unrecognized arguments: --unknown-option')
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
@ -432,6 +432,8 @@ C API
|
|||
Tests
|
||||
-----
|
||||
|
||||
- Issue #28409: regrtest: fix the parser of command line arguments.
|
||||
|
||||
- Issue #27787: Call gc.collect() before checking each test for "dangling
|
||||
threads", since the dangling threads are weak references.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue