Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3f48972

Browse files
committed
Use enum for process types
1 parent23790b2 commit3f48972

File tree

5 files changed

+52
-46
lines changed

5 files changed

+52
-46
lines changed

‎Dockerfile.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ FROM postgres:${PG_VERSION}-alpine
22

33
ENV PYTHON=python${PYTHON_VERSION}
44
RUN if [ "${PYTHON_VERSION}" = "2" ] ; then \
5-
apk add --no-cache curl python2 python2-dev build-base py-virtualenv py-pip; \
5+
apk add --no-cache curl python2 python2-dev build-basemusl-devpy-virtualenv py-pip; \
66
fi
77
RUN if [ "${PYTHON_VERSION}" = "3" ] ; then \
8-
apk add --no-cache curl python3 python3-dev build-base py-virtualenv; \
8+
apk add --no-cache curl python3 python3-dev build-basemusl-devpy-virtualenv; \
99
fi
1010
ENV LANG=C.UTF-8
1111

‎testgres/connection.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def __init__(self, node, dbname=None, username=None, password=None):
3434
username=usernameordefault_username()
3535

3636
self._node=node
37-
self._backend_pid=0
37+
self._pid=0
3838

3939
self._connection=pglib.connect(
4040
database=dbname,
@@ -54,10 +54,10 @@ def connection(self):
5454
returnself._connection
5555

5656
@property
57-
defbackend_pid(self):
58-
ifnotself._backend_pid:
59-
self._backend_pid=self.execute("select pg_backend_pid();")[0][0]
60-
returnself._backend_pid
57+
defpid(self):
58+
ifnotself._pid:
59+
self._pid=self.execute("select pg_backend_pid();")[0][0]
60+
returnself._pid
6161

6262
@property
6363
defcursor(self):

‎testgres/enums.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,18 @@ def __bool__(self):
3535

3636
# for Python 2.x
3737
__nonzero__=__bool__
38+
39+
40+
classProcessType(Enum):
41+
"""
42+
Types of postgres processes
43+
"""
44+
Checkpointer='postgres: checkpointer'
45+
BackgroundWriter='postgres: background writer'
46+
WalWriter='postgres: walwriter'
47+
AutovacuumLauncher='postgres: autovacuum launcher'
48+
StatsCollector='postgres: stats collector'
49+
LogicalReplicationLauncher='postgres: logical replication launcher'
50+
WalReceiver='postgres: walreceiver'
51+
WalSender='postgres: walsender'
52+
Startup='postgres: startup'

‎testgres/node.py

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
fromsiximportraise_from
1717
fromtempfileimportmkstemp,mkdtemp
1818

19-
from .enumsimportNodeStatus
19+
from .enumsimportNodeStatus,ProcessType
2020

2121
from .cacheimportcached_initdb
2222

@@ -465,25 +465,13 @@ def get_auxiliary_pids(self):
465465
result= {}
466466
forchildinchildren:
467467
line=child.cmdline()[0]
468-
ifline.startswith('postgres: checkpointer'):
469-
result['checkpointer']=child.pid
470-
elifline.startswith('postgres: background writer'):
471-
result['bgwriter']=child.pid
472-
elifline.startswith('postgres: walwriter'):
473-
result['walwriter']=child.pid
474-
elifline.startswith('postgres: autovacuum launcher'):
475-
result['autovacuum_launcher']=child.pid
476-
elifline.startswith('postgres: stats collector'):
477-
result['stats']=child.pid
478-
elifline.startswith('postgres: logical replication launcher'):
479-
result['logical_replication_launcher']=child.pid
480-
elifline.startswith('postgres: walreceiver'):
481-
result['walreceiver']=child.pid
482-
elifline.startswith('postgres: walsender'):
483-
result.setdefault('walsenders', [])
484-
result['walsenders'].append(child.pid)
485-
elifline.startswith('postgres: startup'):
486-
result['startup']=child.pid
468+
forptypeinProcessType:
469+
ifptype==ProcessType.WalSender \
470+
andline.startswith(ptype.value):
471+
result.setdefault(ptype, [])
472+
result[ptype].append(child.pid)
473+
elifline.startswith(ptype.value):
474+
result[ptype]=child.pid
487475

488476
returnresult
489477

‎tests/test_simple.py

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
fromtestgresimportbound_ports
4242
fromtestgres.utilsimportpg_version_ge
43+
fromtestgres.enumsimportProcessType
4344

4445

4546
defutil_exists(util):
@@ -709,28 +710,28 @@ def test_pids(self):
709710
psutil=None
710711

711712
master_processes= (
712-
'checkpointer',
713-
'bgwriter',
714-
'walwriter',
715-
'autovacuum_launcher',
716-
'stats',
717-
'logical_replication_launcher',
718-
'walsenders',
713+
ProcessType.Checkpointer,
714+
ProcessType.BackgroundWriter,
715+
ProcessType.WalWriter,
716+
ProcessType.AutovacuumLauncher,
717+
ProcessType.StatsCollector,
718+
ProcessType.LogicalReplicationLauncher,
719+
ProcessType.WalSender,
719720
)
720721
repl_processes= (
721-
'startup',
722-
'checkpointer',
723-
'bgwriter',
724-
'stats',
725-
'walreceiver',
722+
ProcessType.Startup,
723+
ProcessType.Checkpointer,
724+
ProcessType.BackgroundWriter,
725+
ProcessType.StatsCollector,
726+
ProcessType.WalReceiver,
726727
)
727728

728729
withget_new_node('master')asmaster:
729730
master.init().start()
730731

731732
self.assertIsNotNone(master.pid)
732733
withmaster.connect()ascon:
733-
self.assertTrue(con.backend_pid>0)
734+
self.assertTrue(con.pid>0)
734735

735736
withmaster.backup()asbackup:
736737
withbackup.spawn_replica('repl',True)asrepl:
@@ -740,14 +741,16 @@ def test_pids(self):
740741
self.assertIsNone(repl.auxiliary_pids)
741742
else:
742743
master_pids=master.auxiliary_pids
743-
fornameinmaster_processes:
744-
self.assertTrue(nameinmaster_pids)
745-
self.assertTrue(len(master_pids['walsenders'])==1)
744+
forptypeinmaster_processes:
745+
self.assertIn(ptype,master_pids)
746+
self.assertTrue(len(master_pids[ProcessType.WalSender])==1)
746747

747748
repl_pids=repl.auxiliary_pids
748-
fornameinrepl_processes:
749-
self.assertTrue(nameinrepl_pids)
750-
self.assertTrue(repl.get_walsender_pid()==master_pids['walsenders'][0])
749+
forptypeinrepl_processes:
750+
self.assertIn(ptype,repl_pids)
751+
752+
sender_pid=master_pids[ProcessType.WalSender][0]
753+
self.assertTrue(repl.get_walsender_pid()==sender_pid)
751754

752755

753756
if__name__=='__main__':

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp