diff --git a/tests/material/include_dummy.yaml b/tests/material/include_dummy.yaml deleted file mode 100644 index 7c4cde8..0000000 --- a/tests/material/include_dummy.yaml +++ /dev/null @@ -1,2 +0,0 @@ -Key1: Value1 -Key2: $include skeleton_dummy.yaml \ No newline at end of file diff --git a/tests/material/include_dummy_lvl2.yaml b/tests/material/include_dummy_lvl2.yaml deleted file mode 100644 index 6aa02a2..0000000 --- a/tests/material/include_dummy_lvl2.yaml +++ /dev/null @@ -1 +0,0 @@ -Lvl1: $include include_dummy.yaml \ No newline at end of file diff --git a/tests/material/skeleton_dummy.yaml b/tests/material/parser_flatten_dict.yaml similarity index 100% rename from tests/material/skeleton_dummy.yaml rename to tests/material/parser_flatten_dict.yaml diff --git a/tests/material/parser_include.yaml b/tests/material/parser_include.yaml new file mode 100644 index 0000000..9bb6eff --- /dev/null +++ b/tests/material/parser_include.yaml @@ -0,0 +1,2 @@ +Key1: Value1 +Key2: $include parser_flatten_dict.yaml \ No newline at end of file diff --git a/tests/material/include_fail.yaml b/tests/material/parser_include_raiseError.yaml similarity index 100% rename from tests/material/include_fail.yaml rename to tests/material/parser_include_raiseError.yaml diff --git a/tests/material/parser_include_recursive.yaml b/tests/material/parser_include_recursive.yaml new file mode 100644 index 0000000..a9ceb6c --- /dev/null +++ b/tests/material/parser_include_recursive.yaml @@ -0,0 +1 @@ +Lvl1: $include parser_include.yaml \ No newline at end of file diff --git a/tests/material/substitute_dummy.yaml b/tests/material/parser_substitute.yaml similarity index 100% rename from tests/material/substitute_dummy.yaml rename to tests/material/parser_substitute.yaml diff --git a/tests/material/dummy.cfg b/tests/material/reader_cfg.cfg similarity index 100% rename from tests/material/dummy.cfg rename to tests/material/reader_cfg.cfg diff --git a/tests/material/dummy.ini b/tests/material/reader_ini.ini similarity index 100% rename from tests/material/dummy.ini rename to tests/material/reader_ini.ini diff --git a/tests/material/dummy.json b/tests/material/reader_json.json similarity index 100% rename from tests/material/dummy.json rename to tests/material/reader_json.json diff --git a/tests/material/dummy_bad.cfg b/tests/material/reader_raiseError.cfg similarity index 100% rename from tests/material/dummy_bad.cfg rename to tests/material/reader_raiseError.cfg diff --git a/tests/material/dummy.yaml b/tests/material/reader_yaml.yaml similarity index 100% rename from tests/material/dummy.yaml rename to tests/material/reader_yaml.yaml diff --git a/tests/test_parser.py b/tests/test_parser.py index 78ca28d..6471997 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -2,14 +2,17 @@ import pytest import confipy.converter +import confipy.notation import confipy.reader import confipy.parser import os + def get_file(path): cur_dir = os.path.dirname(__file__) return os.path.join(cur_dir, path) + test_flattened_dict = {("level1", "level2", "level3", "key1"): "value1", ("level1", "level2", "level3", "key2"): "value2"} @@ -17,15 +20,15 @@ def get_file(path): ("Key2", "level1", "level2", "level3", "key1"): "value1", ("Key2", "level1", "level2", "level3", "key2"): "value2"} -test_incl_lvl2 = {("Lvl1", "Key1",): "Value1", - ("Lvl1", "Key2", "level1", "level2", "level3", - "key1"): "value1", - ("Lvl1", "Key2", "level1", "level2", "level3", - "key2"): "value2"} +test_incl_recursive = {("Lvl1", "Key1",): "Value1", + ("Lvl1", "Key2", "level1", "level2", "level3", + "key1"): "value1", + ("Lvl1", "Key2", "level1", "level2", "level3", + "key2"): "value2"} -level3 = {"level3":{"key1":"value1", "key2": "value2"}} -test_incl_lvl2_unflattend = {"Lvl1":{"Key1":"Value1", - "Key2":{"level1": {"level2":level3}}}} +level3 = {"level3": {"key1": "value1", "key2": "value2"}} +test_incl_lvl2_unflattend = {"Lvl1": {"Key1": "Value1", + "Key2": {"level1": {"level2": level3}}}} test_subs = {("key1",): "value1", ("key2",): "value2", ("list1",): ["value1value2", "prevalue1suf"], @@ -33,68 +36,67 @@ def get_file(path): def test_flatten_dict(): - cfg = confipy.reader.read_config(get_file("material/skeleton_dummy.yaml")) - skeleton = confipy.converter._flat_dict(cfg) + test_file = get_file("material/parser_flatten_dict.yaml") + cfg = confipy.reader.read_config(test_file) + flattened = confipy.converter._flat_dict(cfg) - assert skeleton == test_flattened_dict + assert flattened == test_flattened_dict def test_include(): - file = get_file("material/include_dummy.yaml") - cfg = confipy.reader.read_config(file) - skeleton = confipy.converter._flat_dict(cfg) - included = confipy.parser.include(skeleton, file) + test_file = get_file("material/parser_include.yaml") + cfg = confipy.reader.read_config(test_file) + flattened = confipy.converter._flat_dict(cfg) + included = confipy.parser.include(flattened, test_file) assert included == test_incl -def test_include_lvl2(): - file = get_file("material/include_dummy_lvl2.yaml") - cfg = confipy.reader.read_config(file) - skeleton = confipy.converter._flat_dict(cfg) - included = confipy.parser.include(skeleton, file) +def test_include_recursive(): + test_file = get_file("material/parser_include_recursive.yaml") + cfg = confipy.reader.read_config(test_file) + flattened = confipy.converter._flat_dict(cfg) + included = confipy.parser.include(flattened, test_file) - assert included == test_incl_lvl2 + assert included == test_incl_recursive def test_include_fail(): - file = get_file("material/include_fail.yaml") + file = get_file("material/parser_include_raiseError.yaml") cfg = confipy.reader.read_config(file) - skeleton = confipy.converter._flat_dict(cfg) + flattened = confipy.converter._flat_dict(cfg) with pytest.raises(AssertionError): - included = confipy.parser.include(skeleton, file) + included = confipy.parser.include(flattened, file) def test_substitute(): - file = get_file("material/substitute_dummy.yaml") - cfg = confipy.reader.read_config(file) - skeleton = confipy.converter._flat_dict(cfg) - subs = confipy.parser.substitute(skeleton) + test_file = get_file("material/parser_substitute.yaml") + cfg = confipy.reader.read_config(test_file) + flattened = confipy.converter._flat_dict(cfg) + subs = confipy.parser.substitute(flattened) assert subs == test_subs def test_unflatten(): - unflatten = confipy.converter._unflat_dict(test_incl_lvl2) + unflatten = confipy.converter._unflat_dict(test_incl_recursive) assert unflatten == test_incl_lvl2_unflattend def test_unflatten_dot(): - def_type = confipy.converter.DotNotation - unflatten = confipy.converter._unflat_dict(test_incl_lvl2, - default_type=def_type) + unflatten = confipy.converter._unflat_dict(test_incl_recursive, + notation="dot") - assert isinstance(unflatten, def_type) == True + assert isinstance(unflatten, confipy.notation.DotNotation) == True assert unflatten.Lvl1.Key1 == "Value1" if __name__ == "__main__": test_flatten_dict() test_include() - test_include_lvl2() + test_include_recursive() test_include_fail() test_substitute() test_unflatten() test_unflatten_dot() - diff --git a/tests/test_reader.py b/tests/test_reader.py index 18f33d9..601fe9a 100644 --- a/tests/test_reader.py +++ b/tests/test_reader.py @@ -26,7 +26,7 @@ def get_file(path): def test_cfg_reader(): - cfg = confipy.reader.read_config(get_file("material/dummy.cfg")) + cfg = confipy.reader.read_config(get_file("material/reader_cfg.cfg")) # as lists are not supported here, they need to be converted list_int = list(map(int, cfg["DummySection1"]["list_int"].split(","))) @@ -39,7 +39,7 @@ def test_cfg_reader(): def test_ini_reader(): - cfg = confipy.reader.read_config(get_file("material/dummy.ini")) + cfg = confipy.reader.read_config(get_file("material/reader_ini.ini")) # as lists are not supported here, they need to be converted list_int = list(map(int, cfg["DummySection1"]["list_int"].split(","))) @@ -52,23 +52,23 @@ def test_ini_reader(): def test_yaml_reader(): - cfg = confipy.reader.read_config(get_file("material/dummy.yaml")) + cfg = confipy.reader.read_config(get_file("material/reader_yaml.yaml")) assert cfg == test_dict def test_json_reader(): - cfg = confipy.reader.read_config(get_file("material/dummy.json")) + cfg = confipy.reader.read_config(get_file("material/reader_json.json")) assert cfg == test_dict def test_auto_read(): - with open(get_file("material/dummy.yaml"), "r") as file: + with open(get_file("material/reader_yaml.yaml"), "r") as file: cfg = confipy.reader.read_config(file) assert cfg == test_dict - with open(get_file("material/dummy.json"), "r") as file: + with open(get_file("material/reader_json.json"), "r") as file: cfg = confipy.reader.read_config(file) assert cfg == test_dict @@ -76,7 +76,7 @@ def test_auto_read(): def test_auto_read_fail(): with pytest.raises(IOError): - with open(get_file("material/dummy_bad.cfg"), "r") as file: + with open(get_file("material/reader_raiseError.cfg"), "r") as file: cfg = confipy.reader.read_config(file)