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)
예제 #2
0
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
예제 #3
0
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_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)
예제 #7
0
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)
예제 #8
0
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)
예제 #9
0
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)
예제 #10
0
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)
예제 #11
0
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)
예제 #12
0
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)
예제 #13
0
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)
예제 #14
0
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)