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

Commit72d0373

Browse files
committed
replace pg_version_ge() with explicit per-node version
1 parent0583873 commit72d0373

File tree

3 files changed

+25
-24
lines changed

3 files changed

+25
-24
lines changed

‎testgres/node.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,11 @@
6666
from .pubsubimportPublication,Subscription
6767

6868
from .utilsimport \
69+
PgVer, \
6970
eprint, \
7071
get_bin_path, \
72+
get_pg_version, \
7173
file_tail, \
72-
pg_version_ge, \
7374
reserve_port, \
7475
release_port, \
7576
execute_utility, \
@@ -113,6 +114,7 @@ def __init__(self, name=None, port=None, base_dir=None):
113114
"""
114115

115116
# private
117+
self._pg_version=PgVer(get_pg_version())
116118
self._should_free_port=portisNone
117119
self._base_dir=base_dir
118120
self._logger=None
@@ -489,7 +491,7 @@ def get_auth_method(t):
489491
ifallow_streaming:
490492

491493
# select a proper wal_level for PostgreSQL
492-
ifpg_version_ge('9.6'):
494+
ifself._pg_version>='9.6':
493495
wal_level="replica"
494496
else:
495497
wal_level="hot_standby"
@@ -504,7 +506,7 @@ def get_auth_method(t):
504506
wal_level))# yapf: disable
505507

506508
ifallow_logical:
507-
ifnotpg_version_ge('10'):
509+
ifself._pg_version<'10':
508510
raiseInitNodeException(
509511
"Logical replication is only available for Postgres 10 "
510512
"and newer")
@@ -568,7 +570,7 @@ def get_control_data(self):
568570

569571
# this one is tricky (blame PG 9.4)
570572
_params= [get_bin_path("pg_controldata")]
571-
_params+= ["-D"]ifpg_version_ge('9.5')else []
573+
_params+= ["-D"]ifself._pg_version>='9.5'else []
572574
_params+= [self.data_dir]
573575

574576
data=execute_utility(_params,self.utils_log_file)
@@ -1042,7 +1044,7 @@ def catchup(self, dbname=None, username=None):
10421044
ifnotself.master:
10431045
raiseTestgresException("Node doesn't have a master")
10441046

1045-
ifpg_version_ge('10'):
1047+
ifself._pg_version>='10':
10461048
poll_lsn="select pg_catalog.pg_current_wal_lsn()::text"
10471049
wait_lsn="select pg_catalog.pg_last_wal_replay_lsn() >= '{}'::pg_lsn"
10481050
else:

‎testgres/utils.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
# ports used by nodes
2323
bound_ports=set()
2424

25+
# re-export version type
26+
PgVer=LooseVersion
27+
2528

2629
defreserve_port():
2730
"""
@@ -180,17 +183,6 @@ def get_pg_version():
180183
returnversion
181184

182185

183-
defpg_version_ge(version):
184-
"""
185-
Check if PostgreSQL is 'version' or newer.
186-
"""
187-
188-
cur_ver=LooseVersion(get_pg_version())
189-
min_ver=LooseVersion(version)
190-
191-
returncur_ver>=min_ver
192-
193-
194186
deffile_tail(f,num_lines):
195187
"""
196188
Get last N lines of a file.

‎tests/test_simple.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
importlogging.config
1313

1414
fromcontextlibimportcontextmanager
15-
fromdistutils.versionimportLooseVersion
1615
fromshutilimportrmtree
1716

1817
fromtestgresimport \
@@ -32,16 +31,24 @@
3231

3332
fromtestgresimport \
3433
NodeStatus, \
34+
ProcessType, \
3535
IsolationLevel, \
3636
get_new_node
3737

3838
fromtestgresimport \
3939
get_bin_path, \
40-
get_pg_config
40+
get_pg_config, \
41+
get_pg_version
4142

43+
# NOTE: those are ugly imports
4244
fromtestgresimportbound_ports
43-
fromtestgres.utilsimportpg_version_ge
44-
fromtestgres.enumsimportProcessType
45+
fromtestgres.utilsimportPgVer
46+
47+
48+
defpg_version_ge(version):
49+
cur_ver=PgVer(get_pg_version())
50+
min_ver=PgVer(version)
51+
returncur_ver>=min_ver
4552

4653

4754
defutil_exists(util):
@@ -110,7 +117,7 @@ def test_init_after_cleanup(self):
110117
node.init().start().execute('select 1')
111118

112119
@unittest.skipUnless(util_exists('pg_resetwal'),'might be missing')
113-
@unittest.skipUnless(pg_version_ge('9.6'),'query works on 9.6+')
120+
@unittest.skipUnless(pg_version_ge('9.6'),'requires 9.6+')
114121
deftest_init_unique_system_id(self):
115122
# this function exists in PostgreSQL 9.6+
116123
query='select system_identifier from pg_control_system()'
@@ -828,9 +835,9 @@ def test_exceptions(self):
828835
str(QueryException('msg','query'))
829836

830837
deftest_version_management(self):
831-
a=LooseVersion('10.0')
832-
b=LooseVersion('10')
833-
c=LooseVersion('9.6.5')
838+
a=PgVer('10.0')
839+
b=PgVer('10')
840+
c=PgVer('9.6.5')
834841

835842
self.assertTrue(a>b)
836843
self.assertTrue(b>c)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp