From aa9e265dbe1e12ebc9be8e4025ab5f9c4d10fe9e Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sat, 15 Apr 2023 11:47:13 +0200 Subject: [PATCH] Fixed config type --- src/cpl_core/configuration/configuration_abc.py | 2 +- src/cpl_core/cpl-core.json | 2 +- tests/custom/general/src/general/application.py | 10 ++++++++++ .../general/src/general/appsettings.edrafts-pc.json | 4 ++++ tests/custom/general/src/general/test_settings.py | 6 ++++++ 5 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 tests/custom/general/src/general/test_settings.py diff --git a/src/cpl_core/configuration/configuration_abc.py b/src/cpl_core/configuration/configuration_abc.py index 96ae8401..1f4c8e3e 100644 --- a/src/cpl_core/configuration/configuration_abc.py +++ b/src/cpl_core/configuration/configuration_abc.py @@ -124,7 +124,7 @@ class ConfigurationABC(ABC): pass @abstractmethod - def get_configuration(self, search_type: T) -> Optional[T]: + def get_configuration(self, search_type: Type[T]) -> Optional[T]: r"""Returns value from configuration by given type Parameter: diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index 137ccad1..eccc2894 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -4,7 +4,7 @@ "Version": { "Major": "2023", "Minor": "4", - "Micro": "0" + "Micro": "0.post1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/tests/custom/general/src/general/application.py b/tests/custom/general/src/general/application.py index f7f3ff72..2c8f23b8 100644 --- a/tests/custom/general/src/general/application.py +++ b/tests/custom/general/src/general/application.py @@ -8,6 +8,7 @@ from cpl_core.dependency_injection import ServiceProviderABC from cpl_core.logging import LoggerABC from cpl_core.mailing import EMailClientABC, EMail from cpl_core.pipes import IPAddressPipe +from general.test_settings import TestSettings from test_service import TestService @@ -57,4 +58,13 @@ class Application(ApplicationABC): Console.write_line("scope", scope) with self._services.create_scope() as s: Console.write_line("with scope", s) + + test_settings = self._configuration.get_configuration(TestSettings) + Console.write_line(test_settings.value) + Console.write_line("reload config") + self._configuration.add_json_file(f"appsettings.json") + self._configuration.add_json_file(f"appsettings.{self._environment.environment_name}.json") + self._configuration.add_json_file(f"appsettings.{self._environment.host_name}.json", optional=True) + test_settings1 = self._configuration.get_configuration(TestSettings) + Console.write_line(test_settings1.value) # self.test_send_mail() diff --git a/tests/custom/general/src/general/appsettings.edrafts-pc.json b/tests/custom/general/src/general/appsettings.edrafts-pc.json index 5d40a040..996cbe72 100644 --- a/tests/custom/general/src/general/appsettings.edrafts-pc.json +++ b/tests/custom/general/src/general/appsettings.edrafts-pc.json @@ -29,5 +29,9 @@ "UseUnicode": "true", "Buffered": "true", "AuthPlugin": "mysql_native_password" + }, + + "TestSettings": { + "Value": 20 } } \ No newline at end of file diff --git a/tests/custom/general/src/general/test_settings.py b/tests/custom/general/src/general/test_settings.py new file mode 100644 index 00000000..a4090edd --- /dev/null +++ b/tests/custom/general/src/general/test_settings.py @@ -0,0 +1,6 @@ +from cpl_core.configuration import ConfigurationModelABC + + +class TestSettings(ConfigurationModelABC): + def __init__(self, value: int = None): + self.value = value