def test_parser_arg_groups(capsys): args = { ("--arg1",): { "group": "Group 1", "help": "Argument 1", "required": True, "type": str, }, ("--arg2",): { "group": "Group 1", "help": "Argument 2", "required": True, "type": str, }, ("--arg3",): { "group": "Group 2", "help": "Argument 3", "required": True, "type": str, }, ("--arg4",): { "group": "Group 2", "help": "Argument 4", "required": True, "type": bool, }, } parser = setup_arg_parser(args) parser.print_help() out, _ = capsys.readouterr() assert "Group 1:" in out assert "Group 2:" in out
def test_parser_action(): args = { ("--arg1",): { "group": "Group 1", "help": "Argument 1", "required": True, "action": "store_true", } } parser = setup_arg_parser(args) parsed_args = parser.parse_args(["--arg1"]) assert parsed_args.arg1 is True
def test_parser_type(): args = { ("--arg1",): { "group": "Group 1", "help": "Argument 1", "required": True, "type": int, } } parser = setup_arg_parser(args) parser.parse_args(["--arg1", "-1502"]) with pytest.raises(SystemExit): parser.parse_args(["--arg1", "s"])
def test_parser_default(): args = { ("--arg1",): { "group": "Group 1", "help": "Argument 1", "required": False, "type": int, "default": "1", } } parser = setup_arg_parser(args) parser.parse_args(["--arg1", "-1502"]) parsed_args = parser.parse_args([]) assert parsed_args.arg1 == 1
def test_parser_arg_not_required(): args = { ("--arg1",): { "group": "Group 1", "help": "Argument 1", "required": False, "type": str, } } parser = setup_arg_parser(args) parser.parse_args(["--arg1", "test"]) parser.parse_args([]) with pytest.raises(SystemExit): parser.parse_args(["--arg1"])