Exemplo n.º 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"
Exemplo n.º 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
Exemplo n.º 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"
Exemplo n.º 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")
Exemplo n.º 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')