def test_argument_parser(): """Verify the argument parser built based on config.""" config = Configuration() config.add_option("option", option_type=str) parser = argparse.ArgumentParser() config.add_arguments(parser) options = parser.parse_args(["--option", "a"]) assert options.option == "a"
def test_argument_parser_ignore_default(): """Verify the argument parser does not get default values.""" config = Configuration() config.add_option("option", option_type=str, default="b") parser = argparse.ArgumentParser() config.add_arguments(parser) options = parser.parse_args([]) assert options.option is None
def test_argument_parser_rename(): """Verify the argument parser built based on config with some options renamed.""" config = Configuration() config.add_option("option", option_type=str) parser = argparse.ArgumentParser() config.add_arguments(parser, rename=dict(option="--new-option")) with pytest.raises(SystemExit) as exc: options = parser.parse_args(["--option", "a"]) assert exc.match("2") options = parser.parse_args(["--new-option", "a"]) assert options.new_option == "a"
def test_argument_parser_dict_list_tuple(): """Verify the argument parser does not contain options of type dict/list/tuple in config.""" config = Configuration() config.add_option("st", option_type=str) config.add_option("di", option_type=dict) config.add_option("li", option_type=list) config.add_option("tu", option_type=tuple) parser = argparse.ArgumentParser() config.add_arguments(parser) options = parser.parse_args([]) assert vars(options) == {"st": None} with pytest.raises(SystemExit) as exc: options = parser.parse_args(["--di", "ct"]) assert exc.match("2")
def test_argument_parser_dict_list_tuple(): """Verify the argument parser does not contain options of type dict/list/tuple in config.""" config = Configuration() config.add_option('st', option_type=str) config.add_option('di', option_type=dict) config.add_option('li', option_type=list) config.add_option('tu', option_type=tuple) parser = argparse.ArgumentParser() config.add_arguments(parser) options = parser.parse_args([]) assert vars(options) == {'st': None} with pytest.raises(SystemExit) as exc: options = parser.parse_args(['--di', 'ct']) assert exc.match('2')