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_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
def test_default_option_sub_overridden_ok(schema): config = Config.from_string("""\ [a] unexpected = 10 """) validation = schema.validate(config) assert 'a' not in validation
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
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
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_default_option_sub_inherited_ko(schema): config = Config.from_string("""\ [b] unexpected = 10 """) validation = schema.validate(config) assert 'unexpected' in validation['b']
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_ok(schema_any): config = Config.from_string("""\ arg0 = 3.2 arg1 = None arg2 = "abc" """) validation = schema_any.validate(config) assert not validation
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_default_section_unused_ok(schema): config = Config.from_string("""\ [a] [aa] x = "xyz" """) validation = schema.validate(config) assert not validation
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']
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_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
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
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']
def test_default_section_overridded_ok(schema): config = Config.from_string("""\ [a] [ab] [us0] x = 2.3 """) validation = schema.validate(config) assert not validation
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
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']
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']
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']
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']
def test_default_option_root_ok(schema): config = Config.from_string("""\ unexpected = "this is a string" """) validation = schema.validate(config) assert not validation
def test_default_option_root_ko(schema): config = Config.from_string("""\ unexpected = 3.2 """) validation = schema.validate(config) assert 'unexpected' in validation
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)