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
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
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()"
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"
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
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
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