Example #1
0
def test_update_argparser_nodefaults(simple_schema):
    parser = create_argparser(simple_schema, defaults=False)
    namespace = parser.parse_args([])
    assert namespace.alpha is None
    assert namespace.beta is None
    assert namespace.gamma is None
    assert namespace.delta is None
Example #2
0
def test_update_argparser(simple_schema):
    parser = create_argparser(simple_schema)
    namespace = parser.parse_args([])
    assert namespace.alpha == 4
    assert namespace.beta == 2.3
    assert namespace.gamma == None
    assert namespace.delta is True
Example #3
0
def test_compile_error():
    schema = Schema.from_string("""\
x = Any()
""", fmt="zirkon")
    with pytest.raises(TypeError) as exc_info:
        parser = create_argparser(schema)
    assert str(exc_info.value) == "cannot compile validator Any()"
Example #4
0
def test_read_namespace_prefix(simple_schema, pfx):
    parser = create_argparser(simple_schema, prefix=pfx)
    namespace = parser.parse_args(["--pfx-alpha", "456", "--pfx-gamma", "abf"])
    
    print(namespace)
    config, validation = read_namespace(simple_schema, namespace, prefix=pfx)
    assert config['alpha'] == 456
    assert config['gamma'] == "abf"
Example #5
0
def test_create_argparser_prefix_str(prefix):
    fqname = _make_fqname(prefix) + ("xval",)
    argname = argument_name(fqname)
    argdest = argument_dest(fqname)
    schema = Schema.from_string("""\
xval = Int(doc="x value")
""", fmt="zirkon")
    parser = create_argparser(schema, prefix=prefix)
    namespace = parser.parse_args(["{}=2".format(argname)])
    assert getattr(namespace, argdest) == 2
Example #6
0
def test_update_argparser_args(simple_schema):
    parser = create_argparser(simple_schema)
    namespace = parser.parse_args([
        "--alpha", "555",
        "--beta", "3",
        "--gamma", "sqlite://",
        "--delta", "off",
    ])
    assert namespace.alpha == 555
    assert namespace.beta == 3.0
    assert namespace.gamma == "sqlite://"
    assert namespace.delta is False
Example #7
0
def test_tdata_namespace(tdata):
    schema = Schema.from_string(
        """\
{} = {}
""".format(tdata.name, tdata.validator_source),
        fmt="zirkon")
    parser = create_argparser(schema)
    for args, value, parsing_error, validation_error in tdata.checks:
        try:
            namespace = parser.parse_args(args)
        except SystemExit:
            assert parsing_error
            continue
        else:
            assert not parsing_error
        assert getattr(namespace, tdata.name) == value