[lang-ref] ( candidate_values ) ( python )

def test_candidate_values(capsys):
    # choices=
    import argparse

    parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument('--frequency', choices=['monthly', 'weekly', 'daily'])

    with pytest.raises(SystemExit) as e:
        args = parser.parse_args(['--frequency=diary']) # wrong input

    assert e.value.code == 2

    captured = capsys.readouterr()

    message = captured.err
    assert message.startswith('usage: ') # usage and error message