Skip to content

Commit 9cc5639

Browse files
committed
fixes, small cleanup
1 parent 5b15db9 commit 9cc5639

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

.gitignore

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
*.pyc
22
dist
33
tags
4-
*.egg-info
4+
*.egg-info/
5+
*.egg
56
Dockerfile
67
.coverage
7-
env
8-
/build
8+
env/
9+
venv/
10+
build/
911
coverage.xml

testgres/testgres.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import atexit
3131
import logging
3232
import os
33-
import pwd
34-
import select
3533
import shutil
3634
import six
3735
import subprocess
@@ -156,6 +154,7 @@ def run(self):
156154
# work until we're asked to stop
157155
while not self._stop_event.is_set():
158156
# do we have new lines?
157+
import select # used only here
159158
if fd in select.select([fd], [], [], 0)[0]:
160159
for line in fd.readlines():
161160
line = line.strip()
@@ -307,9 +306,12 @@ def __init__(self,
307306
if base_dir and not os.path.exists(base_dir):
308307
os.makedirs(base_dir)
309308

309+
# public
310310
self.original_node = node
311311
self.base_dir = base_dir
312-
self.available = True
312+
313+
# private
314+
self._available = True
313315

314316
data_dir = os.path.join(self.base_dir, DATA_DIR)
315317
_params = [
@@ -337,30 +339,31 @@ def _prepare_dir(self, destroy):
337339
Path to data directory.
338340
"""
339341

340-
if not self.available:
342+
if not self._available:
341343
raise BackupException('Backup is exhausted')
342344

343345
# Do we want to use this backup several times?
344346
available = not destroy
345347

346348
if available:
347-
base_dir = tempfile.mkdtemp()
349+
dest_base_dir = tempfile.mkdtemp()
348350

349351
data1 = os.path.join(self.base_dir, DATA_DIR)
350-
data2 = os.path.join(base_dir, DATA_DIR)
352+
data2 = os.path.join(dest_base_dir, DATA_DIR)
351353

352354
try:
353355
# Copy backup to new data dir
354356
shutil.copytree(data1, data2)
355357
except Exception as e:
356358
raise BackupException(_explain_exception(e))
357359
else:
358-
base_dir = self.base_dir
360+
dest_base_dir = self.base_dir
359361

360-
# Update value
361-
self.available = available
362+
# Is this backup exhausted?
363+
self._available = available
362364

363-
return base_dir
365+
# Return path to new node
366+
return dest_base_dir
364367

365368
def spawn_primary(self, name, destroy=True, use_logging=False):
366369
"""
@@ -410,9 +413,9 @@ def spawn_replica(self, name, destroy=True, use_logging=False):
410413
return node
411414

412415
def cleanup(self):
413-
if self.available:
416+
if self._available:
414417
shutil.rmtree(self.base_dir, ignore_errors=True)
415-
self.available = False
418+
self._available = False
416419

417420

418421
class NodeStatus(Enum):
@@ -504,13 +507,11 @@ def _prepare_dirs(self):
504507

505508
def _maybe_start_logger(self):
506509
if self._use_logging:
507-
if not self._logger:
510+
# spawn new logger if it doesn't exist or stopped
511+
if not self._logger or not self._logger.is_alive():
508512
self._logger = TestgresLogger(self.name, self.pg_log_name)
509513
self._logger.start()
510514

511-
elif not self._logger.is_alive():
512-
self._logger.start()
513-
514515
def _maybe_stop_logger(self):
515516
if self._logger:
516517
self._logger.stop()
@@ -1290,6 +1291,7 @@ def default_username():
12901291
Return current user.
12911292
"""
12921293

1294+
import pwd # used only here
12931295
return pwd.getpwuid(os.getuid())[0]
12941296

12951297

tests/test_simple.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,9 @@ def test_logging(self):
429429
lines = log.readlines()
430430
self.assertTrue(any(node_name in s for s in lines))
431431

432-
# test logger after restart
432+
# test logger after stop/start/restart
433+
master.stop()
434+
master.start()
433435
master.restart()
434436
self.assertTrue(master._logger.is_alive())
435437

0 commit comments

Comments
 (0)