Skip to content
Prev Previous commit
Next Next commit
Additional regression tests
  • Loading branch information
jacobtylerwalls committed Jan 29, 2022
commit 7b83cf6f746cc1baefedaff74c577b9e3f3b823a
17 changes: 17 additions & 0 deletions Lib/test/test_argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -5462,10 +5462,27 @@ def test_exit_on_error_with_good_args(self):
def test_exit_on_error_with_bad_args(self):
with self.assertRaises(argparse.ArgumentError):
self.parser.parse_args('--integers a'.split())

def test_exit_on_error_missing_required_arg(self):
msg = 'the following arguments are required: --integers'
with self.assertRaisesRegex(argparse.ArgumentError, msg):
self.parser.parse_args([])

def test_exit_on_error_unknown_arg(self):
msg = 'unrecognized arguments: --unknown'
with self.assertRaisesRegex(argparse.ArgumentError, msg):
self.parser.parse_args('--integers 4 --unknown'.split())

def test_exit_on_error_mutually_exclusive_group(self):
other_parser = argparse.ArgumentParser(exit_on_error=False)
group = other_parser.add_mutually_exclusive_group(required=True)
group.add_argument('--up', action='store_true')
group.add_argument('--down', action='store_true')

msg = 'one of the arguments --up --down is required'
with self.assertRaisesRegex(argparse.ArgumentError, msg):
other_parser.parse_args([])


def tearDownModule():
# Remove global references to avoid looking like we have refleaks.
Expand Down