From ee60be98808333f192d39eb45616e728fb2485b8 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Fri, 11 Dec 2020 19:42:09 +0100 Subject: [PATCH] Changed DatabaseConnection --- src/sh_edraft/database/__init__.py | 2 +- .../connection/base/database_connection_base.py | 13 ++++++++++++- .../database/connection/database_connection.py | 10 +++++++++- src/tests_dev/program.py | 2 +- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/sh_edraft/database/__init__.py b/src/sh_edraft/database/__init__.py index 8b137891..52f86f25 100644 --- a/src/sh_edraft/database/__init__.py +++ b/src/sh_edraft/database/__init__.py @@ -1 +1 @@ - +# imports: diff --git a/src/sh_edraft/database/connection/base/database_connection_base.py b/src/sh_edraft/database/connection/base/database_connection_base.py index f97859bc..c530f593 100644 --- a/src/sh_edraft/database/connection/base/database_connection_base.py +++ b/src/sh_edraft/database/connection/base/database_connection_base.py @@ -1,5 +1,8 @@ from abc import abstractmethod +from sqlalchemy import engine +from sqlalchemy.orm import session + from sh_edraft.service.base.service_base import ServiceBase @@ -9,5 +12,13 @@ class DatabaseConnectionBase(ServiceBase): def __init__(self): ServiceBase.__init__(self) + @property @abstractmethod - def use_mysql(self, connection_string: str): pass + def engine(self) -> engine: pass + + @property + @abstractmethod + def session(self) -> session: pass + + @abstractmethod + def connect(self, connection_string: str): pass diff --git a/src/sh_edraft/database/connection/database_connection.py b/src/sh_edraft/database/connection/database_connection.py index 7d02c382..2c274ccf 100644 --- a/src/sh_edraft/database/connection/database_connection.py +++ b/src/sh_edraft/database/connection/database_connection.py @@ -21,9 +21,17 @@ class DatabaseConnection(DatabaseConnectionBase): self.create() + @property + def engine(self) -> engine: + return self._engine + + @property + def session(self) -> session: + return self._session + def create(self): pass - def use_mysql(self, connection_string: str): + def connect(self, connection_string: str): try: self._engine = create_engine(connection_string) diff --git a/src/tests_dev/program.py b/src/tests_dev/program.py index d780d0c7..94796c55 100644 --- a/src/tests_dev/program.py +++ b/src/tests_dev/program.py @@ -40,7 +40,7 @@ class Program(ApplicationBase): db_settings: DatabaseSettings = self._configuration.get_configuration(DatabaseSettings) self._services.add_singleton(DatabaseConnectionBase, DatabaseConnection) db: DatabaseConnectionBase = self._services.get_service(DatabaseConnectionBase) - db.use_mysql(CredentialManager.build_string(db_settings.connection_string, db_settings.credentials)) + db.connect(CredentialManager.build_string(db_settings.connection_string, db_settings.credentials)) # Add and create logger self._services.add_singleton(LoggerBase, Logger)