From 4b51a040cebcddb95818ea8277389c9550ad0bb0 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Sat, 16 Oct 2021 05:55:04 +0100 Subject: [PATCH] adding latest working --- panaetius/config.py | 33 ++++++++++++++++++--------------- tests/test_panaetius.py | 25 +++++++++++++------------ 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/panaetius/config.py b/panaetius/config.py index f616aa3..5edc3c7 100644 --- a/panaetius/config.py +++ b/panaetius/config.py @@ -39,10 +39,23 @@ class Config: # no config file, look for env vars return self._get_env_value(env_key, default, coerce) - def _get_config_value_key_split_once(self): - pass + def _get_config_value_key_split_once(self, key: str, mask: bool) -> Any: + if mask: + # TODO: write mask logic here + pass + else: + name = key.lower() + return self.config[self.header_variable][name] - def _get_config_value_key_split_twice(self): + def _get_config_value_key_split_twice(self, key: str, mask: bool) -> Any: + if mask: + # TODO: write mask logic here + pass + else: + section, name = key.lower().split(".") + return self.config[self.header_variable][section][name] + + def _get_config_value_missing_key_value_is_none(self, default: Any): pass def _get_config_value( @@ -51,19 +64,9 @@ class Config: try: # look under top header if len(key.split(".")) == 1: - if mask: - # TODO: write mask logic here - pass - else: - name = key.lower() - value = self.config[self.header_variable][name] + value = self._get_config_value_key_split_once(key, mask) elif len(key.split(".")) == 2: - if mask: - # TODO: write mask logic here - pass - else: - section, name = key.lower().split(".") - value = self.config[self.header_variable][section][name] + value = self._get_config_value_key_split_twice(key, mask) return value except (KeyError, TypeError): diff --git a/tests/test_panaetius.py b/tests/test_panaetius.py index 5d66052..ee27c64 100644 --- a/tests/test_panaetius.py +++ b/tests/test_panaetius.py @@ -4,6 +4,7 @@ from panaetius import Config, set_config if __name__ == "__main__": os.environ["PANAETIUS_TEST_PATH"] = "/usr/local" + os.environ["PANAETIUS_TEST_BOOL"] = "true" print(os.environ.get("PANAETIUS_TEST_PATH")) os.environ[ "PANAETIUS_TEST_TOML_POINTS" @@ -14,19 +15,19 @@ if __name__ == "__main__": os.environ["PANAETIUS_TEST_NOC_EMBEDDED_BOOL"] = "true" # c = Config("panaetius_test") - c = Config("panaetius_test_noc") + c = Config("panaetius_test") - # set_config(c, key="path", default="some path") - # set_config(c, key="top", default="some top") - # set_config(c, key="logging.path", default="some logging path") - # set_config(c, key="nonexistent.item", default="some nonexistent item") - # set_config(c, key="nonexistent.item") - # set_config(c, key="toml.points", coerce=True) - # set_config(c, key="toml.points_config") - # set_config(c, key="float", default=2.0) - # set_config(c, key="float_str", default="2.0") - # set_config(c, key="bool", coerce=True) - # set_config(c, key="noexistbool", default=False) + set_config(c, key="path", default="some path") + set_config(c, key="top", default="some top") + set_config(c, key="logging.path", default="some logging path") + set_config(c, key="nonexistent.item", default="some nonexistent item") + set_config(c, key="nonexistent.item") + set_config(c, key="toml.points", coerce=True) + set_config(c, key="toml.points_config") + set_config(c, key="float", default=2.0) + set_config(c, key="float_str", default="2.0") + set_config(c, key="bool", coerce=True) + set_config(c, key="noexistbool", default=False) # set_config(c, key="path") # set_config(c, key="float", coerce=True)