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

Commite93dba7

Browse files
committed
get rid of pg_ctl wrapper, more tests
1 parent9bf92cf commite93dba7

File tree

2 files changed

+57
-43
lines changed

2 files changed

+57
-43
lines changed

‎testgres/testgres.py

Lines changed: 48 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -499,21 +499,6 @@ def append_conf(self, filename, string):
499499

500500
returnself
501501

502-
defpg_ctl(self,command,params={},command_options=[]):
503-
"""
504-
Runs pg_ctl with specified params. This function is a workhorse
505-
for start(), stop(), reload() and status() functions.
506-
"""
507-
508-
_params= [command]
509-
510-
forkey,valueinsix.iteritems(params):
511-
_params.append(key)
512-
ifvalue:
513-
_params.append(value)
514-
515-
_execute_utility("pg_ctl",_params,self.utils_logname)
516-
517502
defstatus(self):
518503
"""
519504
Check this node's status.
@@ -523,8 +508,8 @@ def status(self):
523508
"""
524509

525510
try:
526-
_params={"-D":self.data_dir}
527-
self.pg_ctl("status",_params)
511+
_params=["status","-D",self.data_dir]
512+
_execute_utility("pg_ctl",_params,self.utils_logname)
528513
returnNodeStatus.Running
529514

530515
exceptExecUtilExceptionase:
@@ -568,10 +553,13 @@ def get_control_data(self):
568553

569554
returnout_data
570555

571-
defstart(self,params={}):
556+
defstart(self,params=[]):
572557
"""
573558
Start this node using pg_ctl.
574559
560+
Args:
561+
params: additional arguments for _execute_utility().
562+
575563
Returns:
576564
This instance of PostgresNode.
577565
"""
@@ -594,15 +582,16 @@ def start(self, params={}):
594582
# choose recovery_filename
595583
recovery_filename=os.path.join(self.data_dir,"recovery.conf")
596584

597-
_params={
598-
"-D":self.data_dir,
599-
"-w":None,
600-
"-l":log_filename,
601-
}
602-
_params.update(params)
585+
_params=[
586+
"start",
587+
"-D{}".format(self.data_dir),
588+
"-l{}".format(log_filename),
589+
"-w"
590+
]+params
603591

604592
try:
605-
self.pg_ctl("start",_params)
593+
_execute_utility("pg_ctl",_params,self.utils_logname)
594+
606595
exceptExecUtilExceptionase:
607596
defprint_node_file(node_file):
608597
ifos.path.exists(node_file):
@@ -630,48 +619,53 @@ def print_node_file(node_file):
630619

631620
returnself
632621

633-
defstop(self,params={}):
622+
defstop(self,params=[]):
634623
"""
635624
Stop this node using pg_ctl.
636625
626+
Args:
627+
params: additional arguments for _execute_utility().
628+
637629
Returns:
638630
This instance of PostgresNode.
639631
"""
640632

641-
_params= {"-D":self.data_dir,"-w":None}
642-
_params.update(params)
643-
self.pg_ctl("stop",_params)
633+
_params= ["stop","-D",self.data_dir,"-w"]+params
634+
_execute_utility("pg_ctl",_params,self.utils_logname)
644635

645636
ifself.logger:
646637
self.logger.stop()
647638

648639
returnself
649640

650-
defrestart(self,params={}):
641+
defrestart(self,params=[]):
651642
"""
652643
Restart this node using pg_ctl.
653644
645+
Args:
646+
params: additional arguments for _execute_utility().
647+
654648
Returns:
655649
This instance of PostgresNode.
656650
"""
657651

658-
_params= {"-D":self.data_dir,"-w":None}
659-
_params.update(params)
660-
self.pg_ctl("restart",_params)
652+
_params= ["restart","-D",self.data_dir,"-w"]+params
653+
_execute_utility("pg_ctl",_params,
654+
self.utils_logname,
655+
write_to_pipe=False)
661656

662657
returnself
663658

664-
defreload(self,params={}):
659+
defreload(self,params=[]):
665660
"""
666661
Reload config files using pg_ctl.
667662
668663
Returns:
669664
This instance of PostgresNode.
670665
"""
671666

672-
_params= {"-D":self.data_dir}
673-
_params.update(params)
674-
self.pg_ctl("reload",_params)
667+
_params= ["reload","-D",self.data_dir,"-w"]+params
668+
_execute_utility("pg_ctl",_params,self.utils_logname)
675669

676670
returnself
677671

@@ -958,7 +952,7 @@ def call_initdb(_data_dir):
958952
raiseInitNodeException(e.message)
959953

960954

961-
def_execute_utility(util,args,logfile):
955+
def_execute_utility(util,args,logfile,write_to_pipe=True):
962956
"""
963957
Execute utility (pg_ctl, pg_dump etc) using get_bin_path().
964958
@@ -972,14 +966,25 @@ def _execute_utility(util, args, logfile):
972966
"""
973967

974968
withopen(logfile,"a")asfile_out:
975-
# run pg_ctl
969+
stdout_file=subprocess.DEVNULL
970+
stderr_file=subprocess.DEVNULL
971+
972+
ifwrite_to_pipe:
973+
stdout_file=subprocess.PIPE
974+
stderr_file=subprocess.STDOUT
975+
976+
# run utility
976977
process=subprocess.Popen([get_bin_path(util)]+args,
977-
stdout=subprocess.PIPE,
978-
stderr=subprocess.STDOUT)
978+
stdout=stdout_file,
979+
stderr=stderr_file)
979980

980-
# get result of pg_ctl
981+
# get result
981982
out,_=process.communicate()
982-
out=out.decode('utf-8')
983+
984+
ifout:
985+
out=out.decode('utf-8')
986+
else:
987+
out=""
983988

984989
# write new log entry
985990
file_out.write(''.join(map(lambdax:str(x)+' ', [util]+args)))

‎tests/test_simple.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ def test_uninitialized_start(self):
4343

4444
self.assertTrue(got_exception)
4545

46+
deftest_restart(self):
47+
withget_new_node('test')asnode:
48+
node.init().start()
49+
res=node.execute('postgres','select 1')
50+
self.assertEqual(res, [(1, )])
51+
node.restart()
52+
res=node.execute('postgres','select 2')
53+
self.assertEqual(res, [(2, )])
54+
4655
deftest_status(self):
4756
condition_triggered=False
4857
ifNodeStatus.Running:

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp