def test_read_write(fmt, parameters, tmp_text_file): config_class = parameters.config_class config_content = parameters.config_content cs = config_class(config_content) # print("::: filename:", tmp_text_file.name) print(":::", config_class) cs.dump() cs.write(tmp_text_file.name, fmt) # with open(tmp_text_file.name, "r") as f_in: # if fmt == "toml": # print("::: ---begin") # print(f_in.read() + '\n') # print("::: ---end") cs2 = config_class() cs2.read(tmp_text_file.name, fmt) print("::: reloaded:") cs2.dump() if config_class == Validation: tcs = transform(cs, value_transform=str, dict_class=dict) tcs2 = transform(cs2, value_transform=str, dict_class=dict) print("===", type(tcs), type(tcs2)) assert tcs == tcs2 else: assert compare_dicts(cs, cs2)
def test_Config_read_merge_False(tmpdir, cfg_source, cfg2): config = Config(cfg_source) tmpfile = tmpdir.join("read_nomerge.config").strpath cfg2.write(tmpfile) config.read(tmpfile, merge=False) assert compare_dicts(config, cfg2) assert len(config) == 2
def test_Config_read_merge_default(tmpdir, cfg_source, cfg2): config = Config(cfg_source) tmpfile = tmpdir.join("read_nomerge.config").strpath cfg2.write(tmpfile) config.read(tmpfile) # config.dump() # print("...") # cfg2.dump() assert compare_dicts(config, cfg2) assert len(config) == 2
def test_read_write_schema_de(fmt, schema_de): schema_de_string = schema_de.to_string(fmt=fmt) ref_schema_de_string = SCHEMA_DE_STRING.get(fmt, None) if ref_schema_de_string: assert schema_de_string == ref_schema_de_string schema_de_reloaded = Schema.from_string(schema_de_string, fmt=fmt) assert schema_de == schema_de_reloaded schema_de_reloaded_string = schema_de_reloaded.to_string(fmt=fmt) if ref_schema_de_string: assert schema_de_reloaded_string == schema_de_string else: assert compare_dicts(schema_de_reloaded, schema_de)
def test_read_write(protocol, parameters, tmp_text_file): config_class = parameters.config_class config_content = parameters.config_content cs = config_class(config_content) print(":::", config_class) cs.dump() cs.write(tmp_text_file.name, protocol) cs2 = config_class() cs2.read(tmp_text_file.name, protocol) print("::: reloaded:") cs2.dump() if config_class == Validation: tcs = transform(cs, value_transform=str, dict_class=dict) tcs2 = transform(cs2, value_transform=str, dict_class=dict) print("===", type(tcs), type(tcs2)) assert tcs == tcs2 else: assert compare_dicts(cs, cs2)
def test_ConfigObjSerializer_from_file(simple_config_content, serializer, tmp_text_file): tmp_text_file.write(SIMPLE_CONFIG_CONFIGOBJ_SERIALIZATION) tmp_text_file.flush() tmp_text_file.seek(0) obj = serializer.from_file(filename=tmp_text_file.name) assert compare_dicts(obj, simple_config_content)
def test_ConfigObjSerializer_from_stream(simple_config_content, serializer, string_io): string_io.write(SIMPLE_CONFIG_CONFIGOBJ_SERIALIZATION) string_io.seek(0) obj = serializer.from_stream(stream=string_io) # configobj does not preserve ordering assert compare_dicts(obj, simple_config_content)
def test_ConfigObjSerializer_from_string(simple_config_content, serializer): obj = serializer.from_string(serialization=SIMPLE_CONFIG_CONFIGOBJ_SERIALIZATION) # configobj does not preserve ordering assert compare_dicts(obj, simple_config_content)
def test_compare_dicts_no_1(): dct0 = {'a': 10, 'b': collections.OrderedDict([('x', 1), ('z', 3)]), 'c': 3} dct1 = {'a': 10, 'b': {'x': 1, 'y': {'r': 222}, 'z': 3}, 'c': 3} assert not dictutils.compare_dicts(dct0, dct1) assert not dictutils.compare_dicts(dct1, dct0)
def test_ZirkonSerializer_to_from_file(simple_config_content, serializer, tmp_text_file): serializer.to_file(obj=simple_config_content, filename=tmp_text_file.name) tmp_text_file.flush() tmp_text_file.seek(0) obj = serializer.from_file(filename=tmp_text_file.name) assert compare_dicts(obj, simple_config_content)
def test_ZirkonSerializer_to_from_stream(simple_config_content, serializer, string_io): serializer.to_stream(obj=simple_config_content, stream=string_io) string_io.seek(0) obj = serializer.from_stream(stream=string_io) assert compare_dicts(obj, simple_config_content)
def test_TomlSerializer_to_from_string(simple_config_content, serializer): serialization = serializer.to_string(simple_config_content) obj = serializer.from_string(serialization=serialization) assert obj == simple_config_content assert compare_dicts(obj, simple_config_content)