From 25141ae7f9657d93d7ebca8143ef78083688d424 Mon Sep 17 00:00:00 2001 From: Yusuf Ali Date: Sun, 19 Jan 2025 21:38:11 +0000 Subject: [PATCH] fix(config): use double dash as dot fixes #49 --- servc/svc/config/__init__.py | 4 ++-- tests/svc/test_config.py | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/servc/svc/config/__init__.py b/servc/svc/config/__init__.py index 823ea60..3dc2057 100644 --- a/servc/svc/config/__init__.py +++ b/servc/svc/config/__init__.py @@ -59,7 +59,7 @@ def __init__(self, config_path: str | None = None): raise Exception("Configuration file does not match the configuration path") def get(self, key: str) -> Any: - keys = key.lower().split(".") + keys = [x.replace("--", ".") for x in key.lower().split(".")] subconfig = self._configDictionary for index, subkey in enumerate(keys): @@ -71,7 +71,7 @@ def get(self, key: str) -> Any: subconfig = subconfig.get(subkey, {}) def setValue(self, key: str, value: Any): - keys = key.lower().split(".") + keys = [x.replace("--", ".") for x in key.lower().split(".")] subconfig = self._configDictionary for index, subkey in enumerate(keys): diff --git a/tests/svc/test_config.py b/tests/svc/test_config.py index 12234bc..9c8b936 100644 --- a/tests/svc/test_config.py +++ b/tests/svc/test_config.py @@ -18,7 +18,13 @@ def test_value(self): self.assertEqual(self.config.get("conf.bus.prefix"), "test") self.config.setValue("conf.bus.routemap.api", "test_route") - self.assertEqual(self.config.get("conf.bus.routemap.api"), "test_route") + self.assertEqual(self.config.get( + "conf.bus.routemap.api"), "test_route") + + self.config.setValue("conf.bus.routemap--api", "test_route") + self.assertEqual(self.config.get( + "conf.bus.routemap--api"), "test_route") + self.assertIn("routemap.api", self.config.get('conf.bus')) def test_wrong_location(self): try: