@@ -90,27 +90,34 @@ def dir_files(base_dir):
9090 return out_list
9191
9292
93+ def is_pgpro ():
94+ # pg_config --help
95+ cmd = [os .environ ['PG_CONFIG' ], '--help' ]
96+
97+ result = subprocess .run (cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE , check = True )
98+ return b'postgrespro' in result .stdout
99+
100+
93101def is_enterprise ():
94102 # pg_config --help
95103 cmd = [os .environ ['PG_CONFIG' ], '--help' ]
96104
97- p = subprocess .Popen (
98- cmd ,
99- stdout = subprocess .PIPE ,
100- stderr = subprocess .PIPE
101- )
102- return b'postgrespro.ru' in p .communicate ()[0 ]
105+ p = subprocess .run (cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE , check = True )
106+ # PostgresPro std or ent
107+ if b'postgrespro' in p .stdout :
108+ cmd = [os .environ ['PG_CONFIG' ], '--pgpro-edition' ]
109+ p = subprocess .run (cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE , check = True )
110+
111+ return b'enterprise' in p .stdout
112+ else : # PostgreSQL
113+ return False
114+
103115
104-
105116def is_nls_enabled ():
106117 cmd = [os .environ ['PG_CONFIG' ], '--configure' ]
107118
108- p = subprocess .Popen (
109- cmd ,
110- stdout = subprocess .PIPE ,
111- stderr = subprocess .PIPE
112- )
113- return b'enable-nls' in p .communicate ()[0 ]
119+ result = subprocess .run (cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE , check = True )
120+ return b'enable-nls' in result .stdout
114121
115122
116123def base36enc (number ):
@@ -229,6 +236,7 @@ class ProbackupTest(object):
229236 # Class attributes
230237 enterprise = is_enterprise ()
231238 enable_nls = is_nls_enabled ()
239+ pgpro = is_pgpro ()
232240
233241 def __init__ (self , * args , ** kwargs ):
234242 super (ProbackupTest , self ).__init__ (* args , ** kwargs )
0 commit comments