def test_CustomObject_config(config_source):
    with Config.scope().registered(HOSTNAME=HOSTNAME, WORKDIR=WORKDIR):
        config = Config.from_string(config_source)
        assert config["x"] == HOSTNAME
        assert config["alpha"]["y"] == WORKDIR
    with pytest.raises(ValueError):
        config = Config.from_string(config_source)
def test_CustomObject_config_schema_to_string(config_source, schema_source, string_io):
    with Schema.scope().registered(HOSTNAME=HOSTNAME, WORKDIR=WORKDIR), \
         Config.scope().registered(HOSTNAME=HOSTNAME, WORKDIR=WORKDIR):
        schema = Schema.from_string(schema_source)
        config = Config.from_string(config_source, defaults=False, schema=schema)
        config.to_stream(string_io)
        s = string_io.getvalue()
        assert s == """\
def test_CustomObject_config_schema(config_source, schema_source):
    with Schema.scope().registered(HOSTNAME=HOSTNAME, WORKDIR=WORKDIR), \
         Config.scope().registered(HOSTNAME=HOSTNAME, WORKDIR=WORKDIR):
        schema = Schema.from_string(schema_source)
        config = Config.from_string(config_source, schema=schema)
        assert config["x"] == HOSTNAME
        assert config["alpha"]["y"] == WORKDIR
        assert config["alpha"]["z"] == HOSTNAME + ":" + WORKDIR
def test_serializer_empty(fmt):
    # test to fix toml library bug (toml->pytoml)
    serializer = Serializer.get_class(fmt)(scope=Config.scope())
    dct = {"a": {}, "b": {"b0": 10, "b1": {}, "b2": {"b2_0": 10}}}
    s = serializer.to_string(dct)
    dct1 = serializer.from_string(s)
    assert dct == dct1
def test_ignore(schema_ignore):
    config = Config.from_string("""\
arg0 = 1.2
""")
    validation = schema_ignore.validate(config)
    assert not validation
    assert config['arg0'] == 1.2
def test_any_option_ko(schema_any):
    config = Config.from_string("""\
""")
    validation = schema_any.validate(config)
    assert 'arg0' in validation
    assert not 'arg1' in validation
    assert not 'arg2' in validation
Example #7
0
def test_default_option_sub_overridden_ok(schema):
    config = Config.from_string("""\
[a]
    unexpected = 10
""")
    validation = schema.validate(config)
    assert 'a' not in validation
Example #8
0
def test_default_option_sub_inherited_ok(schema):
    config = Config.from_string("""\
[b]
    unexpected = "this is a string"
""")
    validation = schema.validate(config)
    assert 'b' not in validation
Example #9
0
def test_default_option_sub_inherited_ko(schema):
    config = Config.from_string("""\
[b]
    unexpected = 10
""")
    validation = schema.validate(config)
    assert 'unexpected' in  validation['b']
Example #10
0
def test_default_option_sub_overridden_ko1(schema):
    config = Config.from_string("""\
[c]
    unexpected = "this is a string"
""")
    validation = schema.validate(config)
    assert 'unexpected' in  validation['c']
def test_remove(schema_remove):
    config = Config.from_string("""\
arg0 = 1.2
""")
    validation = schema_remove.validate(config)
    assert not validation
    assert 'arg0' not in config
Example #12
0
def test_default_option_overridded_in_default_section_ko(schema):
    config = Config.from_string("""\
[a]
    [us]
        unexpected = "this is a string"
""")
    validation = schema.validate(config)
    assert 'unexpected' in  validation['a']['us']
Example #13
0
def test_default_section_unused_ko(schema):
    config = Config.from_string("""\
[a]
    [aa]
        x = 10
""")
    validation = schema.validate(config)
    assert 'x' in validation['a']['aa']
def test_any_option_ok(schema_any):
    config = Config.from_string("""\
arg0 = 3.2
arg1 = None
arg2 = "abc"
""")
    validation = schema_any.validate(config)
    assert not validation
def test_any_option_ok_default(schema_any):
    config = Config.from_string("""\
arg0 = 3.2
""")
    validation = schema_any.validate(config)
    assert not validation
    assert config['arg1'] == 10
    assert config['arg2'] is None
Example #16
0
def test_default_section_unused_ok(schema):
    config = Config.from_string("""\
[a]
    [aa]
        x = "xyz"
""")
    validation = schema.validate(config)
    assert not validation
Example #17
0
def test_default_option_overridded_in_default_section_ok(schema):
    config = Config.from_string("""\
[a]
    [us]
        unexpected = 0.2
""")
    validation = schema.validate(config)
    assert not validation
Example #18
0
def test_default_section_overridded_ok(schema):
    config = Config.from_string("""\
[a]
    [ab]
        [us0]
            x = 2.3
""")
    validation = schema.validate(config)
    assert not validation
Example #19
0
def test_default_section_overridded_ko(schema):
    config = Config.from_string("""\
[a]
    [ab]
        [us0]
            x = "abc"
""")
    validation = schema.validate(config)
    assert 'x' in validation['a']['ab']['us0']
Example #20
0
def test_default_section_overridded_inherited_ko(schema):
    config = Config.from_string("""\
[a]
    [ab]
        [us0]
            x = 1.2
            [us1]
                x = True
""")
    validation = schema.validate(config)
    assert 'x' not in validation['a']['ab']['us0']
    assert 'x' in validation['a']['ab']['us0']['us1']
Example #21
0
def test_default_section_inherited_ok(schema):
    config = Config.from_string("""\
[a]
    [us0]
        x = 10
        [us1]
            x = 20
            [us2]
                x = 20
""")
    validation = schema.validate(config)
    assert not validation
Example #22
0
def test_default_section_inherited_ko(schema):
    config = Config.from_string("""\
[a]
    [us0]
        x = 10
        [us1]
            x = 20
            [us2]
                x = "abc"
""")
    validation = schema.validate(config)
    assert 'x' in validation['a']['us0']['us1']['us2']
Example #23
0
def test_default_section_inherited_sub_overridden(schema):
    config = Config.from_string("""\
[e]
    [us0]
        a = 10
        b = 12
        [us00]
            a0 = 10
""")
    validation = schema.validate(config)
    assert 'us0' in validation['e']
    assert 'a' not in validation['e']['us0']
    assert 'b' not in validation['e']['us0']
    assert 'us00' in validation['e']['us0']
    assert 'a0' in validation['e']['us0']['us00']
Example #24
0
def test_default_section_inherited_sub(schema):
    config = Config.from_string("""\
[d]
    [us0]
        a = 10
        b = 12
        [us00]
            a0 = 10
    [us1]
        aa = 10
        bb = "x"
        [us10]
            a0 = 10
""")
    validation = schema.validate(config)
    assert 'us0' not in validation['d']
    assert 'us1' in validation['d']
    assert 'aa' not in validation['d']['us1']
    assert 'bb' in validation['d']['us1']
    assert 'us10' not in validation['d']['us1']
Example #25
0
def test_default_option_root_ok(schema):
    config = Config.from_string("""\
unexpected = "this is a string"
""")
    validation = schema.validate(config)
    assert not validation
Example #26
0
def test_default_option_root_ko(schema):
    config = Config.from_string("""\
unexpected = 3.2
""")
    validation = schema.validate(config)
    assert 'unexpected' in validation
def serializer():
    return JSONSerializer(scope=Config.scope())
def test_complain(schema_complain):
    config = Config.from_string("""\
arg0 = 1.2
""")
    validation = schema_complain.validate(config)
    assert 'arg0' in validation
def test_CustomObject_config_error(config_source):
    with pytest.raises(ValueError):
        config = Config.from_string(config_source)