Skip to content

Commit 9924ab0

Browse files
author
Ivan Lazarev
committed
[PBCKP-304] extended testgres.PosgresNode to filter excessive close() and its log entries calls
1 parent e2b4549 commit 9924ab0

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

tests/helpers/ptrack_helpers.py

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def __str__(self):
140140
return '\n ERROR: {0}\n CMD: {1}'.format(repr(self.message), self.cmd)
141141

142142

143-
def slow_start(self, replica=False):
143+
def _slow_start(self, replica=False):
144144

145145
# wait for https://github.com/postgrespro/testgres/pull/50
146146
# self.start()
@@ -174,7 +174,7 @@ def slow_start(self, replica=False):
174174
sleep(0.5)
175175

176176

177-
def is_test_result_ok(test_case):
177+
def _is_test_result_ok(test_case):
178178
# sources of solution:
179179
# 1. python versions 2.7 - 3.10, verified on 3.10, 3.7, 2.7, taken from:
180180
# https://tousu.in/qa/?qa=555402/unit-testing-getting-pythons-unittest-results-in-a-teardown-method&show=555403#a555403
@@ -197,6 +197,28 @@ def is_test_result_ok(test_case):
197197
return ok
198198

199199

200+
class PostgresNodeExtended(testgres.PostgresNode):
201+
202+
def __init__(self, base_dir=None, *args, **kwargs):
203+
super(PostgresNodeExtended, self).__init__(name='test', base_dir=base_dir, *args, **kwargs)
204+
self.is_started = False
205+
206+
def slow_start(self, replica=False):
207+
_slow_start(self, replica=replica)
208+
209+
def start(self, *args, **kwargs):
210+
if not self.is_started:
211+
super(PostgresNodeExtended, self).start(*args, **kwargs)
212+
self.is_started = True
213+
return self
214+
215+
def stop(self, *args, **kwargs):
216+
if self.is_started:
217+
result = super(PostgresNodeExtended, self).stop(*args, **kwargs)
218+
self.is_started = False
219+
return result
220+
221+
200222
class ProbackupTest(object):
201223
# Class attributes
202224
enterprise = is_enterprise()
@@ -375,7 +397,7 @@ def __init__(self, *args, **kwargs):
375397
os.environ["PGAPPNAME"] = "pg_probackup"
376398

377399
def tearDown(self):
378-
if is_test_result_ok(self):
400+
if _is_test_result_ok(self):
379401
for node in self.nodes_to_cleanup:
380402
node.cleanup()
381403
self.del_test_dir(self.module_name, self.fname)
@@ -418,10 +440,10 @@ def make_empty_node(
418440
shutil.rmtree(real_base_dir, ignore_errors=True)
419441
os.makedirs(real_base_dir)
420442

421-
node = testgres.get_new_node('test', base_dir=real_base_dir)
422-
# bound method slow_start() to 'node' class instance
423-
node.slow_start = slow_start.__get__(node)
443+
node = PostgresNodeExtended(base_dir=real_base_dir)
424444
node.should_rm_dirs = True
445+
self.nodes_to_cleanup.append(node)
446+
425447
return node
426448

427449
def make_simple_node(
@@ -485,8 +507,6 @@ def make_simple_node(
485507
self.set_auto_conf(
486508
node, {}, 'postgresql.conf', ['wal_keep_segments'])
487509

488-
self.nodes_to_cleanup.append(node)
489-
490510
return node
491511

492512
def simple_bootstrap(self, node, role) -> None:

0 commit comments

Comments
 (0)