Skip to content

Commit 6ba66b6

Browse files
TestTestgresCommon::test_pg_ctl_wait_option is corrected (#315)
A problem with multi-worker execution is fixed: - we use an unique port number - we catch an exception from node.start - we sleep a few seconds between attempts (just for fun)
1 parent 22795f5 commit 6ba66b6

1 file changed

Lines changed: 32 additions & 5 deletions

File tree

tests/test_testgres_common.py

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,13 +1275,27 @@ def test_pg_ctl_wait_option(self, node_svc: PostgresNodeService):
12751275
raise Exception("PostgresSQL did not start.")
12761276

12771277
nAttempt += 1
1278-
logging.info("------------------------ NODE #{}".format(
1278+
logging.info("------------------------ attempt #{}".format(
12791279
nAttempt
12801280
))
12811281

1282-
with __class__.helper__get_node(node_svc, port=12345) as node:
1283-
if self.impl__test_pg_ctl_wait_option(node_svc, node):
1284-
break
1282+
if nAttempt > 1:
1283+
logging.info("Sleep 3 seconds")
1284+
time.sleep(3)
1285+
1286+
port = node_svc.port_manager.reserve_port()
1287+
assert type(port) == int # noqa: E721
1288+
ok = False
1289+
try:
1290+
with __class__.helper__get_node(node_svc, port=port) as node:
1291+
if self.impl__test_pg_ctl_wait_option(node_svc, node):
1292+
ok = True
1293+
finally:
1294+
node_svc.port_manager.release_port(port)
1295+
1296+
if ok:
1297+
break
1298+
12851299
continue
12861300

12871301
logging.info("OK. Test is passed. Number of attempts is {}".format(
@@ -1300,12 +1314,25 @@ def impl__test_pg_ctl_wait_option(
13001314

13011315
C_MAX_ATTEMPTS = 50
13021316

1317+
logging.info("init node")
13031318
node.init()
13041319
assert node.status() == NodeStatus.Stopped
1320+
logging.info("node is inited")
13051321

13061322
node_log_reader = PostgresNodeLogReader(node, from_beginnig=True)
13071323

1308-
node.start(wait=False)
1324+
logging.info("start node")
1325+
1326+
try:
1327+
node.start(wait=False)
1328+
except StartNodeException as e:
1329+
logging.info("Exception ({}): {}".format(
1330+
type(e).__name__,
1331+
e,
1332+
))
1333+
return False
1334+
logging.info("node is started")
1335+
13091336
nAttempt = 0
13101337
while True:
13111338
if PostgresNodeUtils.delect_port_conflict(node_log_reader):

0 commit comments

Comments
 (0)