def test_add_parameter_dict():
    parser = DictParser()
    parser.add_parameter("param1", loc="sub.suub")
    parser2 = DictParser()
    parser2.add_parameter("param2")
    parser2.add_parameter_dict(parser.dictionary, loc="sb")
    assert parser2.dictionary["sb"]["sub"]["suub"]["param1"].name == "param1"
    assert parser2.dictionary["param2"].name == "param2"
Ejemplo n.º 2
0
def test_non_string_outside_choices():
    parser = DictParser()
    parser.add_parameter(Parameter("test", choices=[1, 2]))
    with pytest.raises(ArgumentError):
        parser.parse_arguments({
            'test': {
                'param': 4
            },
        })
def test_print_tree():
    parser = DictParser()
    param = Parameter("test",
                      default="c",
                      required=False,
                      choices=["a", "b", "c"],
                      help="help")
    loc = "sub.suub.suuub"
    parser.add_parameter(param, loc=loc)
    parser_module = sys.modules[parser.tree.__module__].__name__

    with TempStringLogger(parser_module) as log:
        parser.tree()

    text = log.get_log()
    for l in loc.split("."):
        assert l in text
    for attr in ["name", "default", "required", "choices", "help"]:
        assert str(getattr(param, attr)) in text
def test_add_param_already_exist_loc():
    parser = DictParser()
    parser.add_parameter("test", loc="sub.suub")
    with pytest.raises(ParameterError):
        parser.add_parameter("suub", loc="sub")
def test_add_param_loc2():
    parser = DictParser()
    parser.add_parameter("test", loc="sub.suub.suuub", default="def")
    assert parser.dictionary["sub"]["suub"]["suuub"]["test"].name == "test"
    assert parser.dictionary["sub"]["suub"]["suuub"]["test"].default == "def"