[lang-ref] ( parse_positional_args ) ( python )
def test_parse_positional_args():
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
# positional args starts not with '-'
parser.add_argument('PARAM1')
parser.add_argument('PARAM2')
# correct params
args = parser.parse_args(['A', 'B'])
assert args.PARAM1 == 'A'
assert args.PARAM2 == 'B'
# wrong params
with pytest.raises(SystemExit) as e:
parser.parse_args(['A']) # insufficient
assert e.value.code == 2
with pytest.raises(SystemExit) as e:
parser.parse_args(['A', 'B', 'C']) # too much
assert e.value.code == 2