bpo-9938: Add optional keyword argument exit_on_error to argparse.ArgumentParser (GH-15362)

Co-Authored-by: Xuanji Li <xuanji@gmail.com>


https://bugs.python.org/issue9938



Automerge-Triggered-By: @matrixise
This commit is contained in:
Hai Shi 2019-09-12 05:56:05 -05:00 committed by Miss Islington (bot)
parent 2d32bf1ef2
commit f545638b57
4 changed files with 62 additions and 10 deletions

View file

@ -5262,6 +5262,21 @@ class TestWrappingMetavar(TestCase):
'''))
class TestExitOnError(TestCase):
def setUp(self):
self.parser = argparse.ArgumentParser(exit_on_error=False)
self.parser.add_argument('--integers', metavar='N', type=int)
def test_exit_on_error_with_good_args(self):
ns = self.parser.parse_args('--integers 4'.split())
self.assertEqual(ns, argparse.Namespace(integers=4))
def test_exit_on_error_with_bad_args(self):
with self.assertRaises(argparse.ArgumentError):
self.parser.parse_args('--integers a'.split())
def test_main():
support.run_unittest(__name__)
# Remove global references to avoid looking like we have refleaks.