示例#1
0
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"
示例#2
0
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
示例#3
0
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"
示例#4
0
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")
示例#5
0
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')