From fdf0cbd051126cb0bb3ebbe78184650a79bb811d Mon Sep 17 00:00:00 2001 From: "d.kovalenko" Date: Sun, 7 Jun 2026 12:01:06 +0300 Subject: [PATCH] [PostgresNode] utils_log_name and pg_log_name are RO-properties now It prevents to create base_dir in constructor Also: - PostgresNode::restore uses self.utils_log_file - TestTestgresCommon::test_node_constructor__default is added --- src/node.py | 16 +++++++++++----- tests/test_testgres_common.py | 12 ++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/node.py b/src/node.py index 83b9b079..343c99df 100644 --- a/src/node.py +++ b/src/node.py @@ -249,10 +249,6 @@ def __init__(self, self.cleanup_on_bad_exit = testgres_config.node_cleanup_on_bad_exit self.shutdown_max_attempts = 3 - # NOTE: for compatibility - self.utils_log_name = self.utils_log_file - self.pg_log_name = self.pg_log_file - # Node state self._manually_started_pm_pid = None @@ -540,6 +536,16 @@ def pg_log_file(self): assert type(path) is str return path + # NOTE: for compatibility + @property + def utils_log_name(self) -> str: + return self.utils_log_file + + # NOTE: for compatibility + @property + def pg_log_name(self) -> str: + return self.pg_log_file + @property def version(self): """ @@ -1620,7 +1626,7 @@ def restore(self, filename, dbname=None, username=None): # try pg_restore if dump is binary format, and psql if not try: - execute_utility2(self._os_ops, _params, self.utils_log_name) + execute_utility2(self._os_ops, _params, self.utils_log_file) except ExecUtilException: self.psql(filename=filename, dbname=dbname, username=username) diff --git a/tests/test_testgres_common.py b/tests/test_testgres_common.py index e48e0a8a..9dc0945f 100644 --- a/tests/test_testgres_common.py +++ b/tests/test_testgres_common.py @@ -132,6 +132,18 @@ def test_version_management(self, node_svc: PostgresNodeService): assert (isinstance(node.version, PgVer)) assert (node.version == PgVer(version)) + def test_node_constructor__default(self): + node = PostgresNode() + assert node._os_ops is not None + assert isinstance(node._os_ops, OsOperations) + assert node._port_manager is not None + assert isinstance(node._port_manager, PortManager) + assert node._name is not None + assert type(node._name) is str + assert node._name != "" + assert node._base_dir is None + return + def test_node_repr(self, node_svc: PostgresNodeService): with __class__.helper__get_node(node_svc).init() as node: pattern = r"PostgresNode\(name='.+', port=.+, base_dir='.+'\)"