Fixed config type

This commit is contained in:
Sven Heidemann 2023-04-15 11:47:13 +02:00
parent 315b8e631a
commit aa9e265dbe
5 changed files with 22 additions and 2 deletions

View File

@ -124,7 +124,7 @@ class ConfigurationABC(ABC):
pass pass
@abstractmethod @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 r"""Returns value from configuration by given type
Parameter: Parameter:

View File

@ -4,7 +4,7 @@
"Version": { "Version": {
"Major": "2023", "Major": "2023",
"Minor": "4", "Minor": "4",
"Micro": "0" "Micro": "0.post1"
}, },
"Author": "Sven Heidemann", "Author": "Sven Heidemann",
"AuthorEmail": "sven.heidemann@sh-edraft.de", "AuthorEmail": "sven.heidemann@sh-edraft.de",

View File

@ -8,6 +8,7 @@ from cpl_core.dependency_injection import ServiceProviderABC
from cpl_core.logging import LoggerABC from cpl_core.logging import LoggerABC
from cpl_core.mailing import EMailClientABC, EMail from cpl_core.mailing import EMailClientABC, EMail
from cpl_core.pipes import IPAddressPipe from cpl_core.pipes import IPAddressPipe
from general.test_settings import TestSettings
from test_service import TestService from test_service import TestService
@ -57,4 +58,13 @@ class Application(ApplicationABC):
Console.write_line("scope", scope) Console.write_line("scope", scope)
with self._services.create_scope() as s: with self._services.create_scope() as s:
Console.write_line("with scope", 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() # self.test_send_mail()

View File

@ -29,5 +29,9 @@
"UseUnicode": "true", "UseUnicode": "true",
"Buffered": "true", "Buffered": "true",
"AuthPlugin": "mysql_native_password" "AuthPlugin": "mysql_native_password"
},
"TestSettings": {
"Value": 20
} }
} }

View File

@ -0,0 +1,6 @@
from cpl_core.configuration import ConfigurationModelABC
class TestSettings(ConfigurationModelABC):
def __init__(self, value: int = None):
self.value = value