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_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 serializer(): return JSONSerializer(scope=Config.scope())