diff --git a/python_template_server/db/base_database_manager.py b/python_template_server/db/base_database_manager.py index 4d3b59c..062c3f0 100644 --- a/python_template_server/db/base_database_manager.py +++ b/python_template_server/db/base_database_manager.py @@ -14,10 +14,15 @@ class BaseDatabaseManager(ABC): """Manager class for database operations. Subclasses must implement the `db_url` property to provide the correct database URL. + The database manager must be configured using `configure()` after the server has loaded the configuration. """ - def __init__(self, db_config: DatabaseConfig) -> None: + def __init__(self) -> None: """Initialize the database manager.""" + logger.info("Ready to be configured...") + + def configure(self, db_config: DatabaseConfig) -> None: + """Configure the database manager with the given configuration.""" self.db_config = db_config self.db_config.db_directory.mkdir(parents=True, exist_ok=True) diff --git a/tests/db/test_base_database_manager.py b/tests/db/test_base_database_manager.py index a5de736..635f9b4 100644 --- a/tests/db/test_base_database_manager.py +++ b/tests/db/test_base_database_manager.py @@ -23,7 +23,8 @@ def db_url(self) -> str: @pytest.fixture def mock_database_manager(mock_db_config: DatabaseConfig) -> Generator[BaseDatabaseManager]: """Fixture for creating a mock database manager.""" - db_manager = MockDatabaseManager(db_config=mock_db_config) + db_manager = MockDatabaseManager() + db_manager.configure(mock_db_config) yield db_manager db_manager.engine.dispose() @@ -31,8 +32,8 @@ def mock_database_manager(mock_db_config: DatabaseConfig) -> Generator[BaseDatab class TestBaseDatabaseManager: """Unit tests for the BaseDatabaseManager class.""" - def test_initialization(self, mock_database_manager: BaseDatabaseManager) -> None: - """Test that the database manager initializes correctly.""" + def test_configuration(self, mock_database_manager: BaseDatabaseManager) -> None: + """Test that the database manager is configured correctly.""" assert isinstance(mock_database_manager.db_config, DatabaseConfig) assert isinstance(mock_database_manager.engine, Engine)