From 8e5b09d66ca3fd5bad0c380aea5086e44f71f59c Mon Sep 17 00:00:00 2001 From: Ildus Kurbangaliev Date: Wed, 28 Feb 2018 14:17:16 +0300 Subject: [PATCH 1/3] Use kwargs for several functions to move through all possible arguments --- testgres/node.py | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/testgres/node.py b/testgres/node.py index ca64e918..ce5070d8 100644 --- a/testgres/node.py +++ b/testgres/node.py @@ -112,7 +112,7 @@ def __enter__(self): def __exit__(self, type, value, traceback): self.free_port() - # NOTE: ctrl+C does not count! + # NOTE: Ctrl+C does not count! got_exception = type is not None and type != KeyboardInterrupt c1 = self.cleanup_on_good_exit and not got_exception @@ -681,16 +681,13 @@ def psql(self, return process.returncode, out, err @method_decorator(positional_args_hack(['dbname', 'query'])) - def safe_psql(self, - query, - dbname=None, - username=None, - input=None): + def safe_psql(self, query=None, **kwargs): """ Execute a query using psql. Args: query: query to be executed. + filename: file with a query. dbname: database name to connect to. username: database user name. input: raw input to be passed. @@ -699,10 +696,7 @@ def safe_psql(self, psql's output as str. """ - ret, out, err = self.psql(query=query, - dbname=dbname, - username=username, - input=input) + ret, out, err = self.psql(query=query, **kwargs) if ret: raise QueryException((err or b'').decode('utf-8'), query) @@ -858,27 +852,23 @@ def execute(self, return res - def backup(self, username=None, xlog_method=DEFAULT_XLOG_METHOD): + def backup(self, **kwargs): """ Perform pg_basebackup. Args: username: database user name. xlog_method: a method for collecting the logs ('fetch' | 'stream'). + base_dir: the base directory for data files and logs Returns: A smart object of type NodeBackup. """ from .backup import NodeBackup - return NodeBackup(node=self, - username=username, - xlog_method=xlog_method) + return NodeBackup(node=self, **kwargs) - def replicate(self, - name=None, - username=None, - xlog_method=DEFAULT_XLOG_METHOD): + def replicate(self, name=None, **kwargs): """ Create a binary replica of this node. @@ -886,9 +876,10 @@ def replicate(self, name: replica's application name. username: database user name. xlog_method: a method for collecting the logs ('fetch' | 'stream'). + base_dir: the base directory for data files and logs """ - backup = self.backup(username=username, xlog_method=xlog_method) + backup = self.backup(**kwargs) # transform backup into a replica return backup.spawn_replica(name=name, destroy=True) From 2693dac1ca486c6335c7b447f7372574fd3c291e Mon Sep 17 00:00:00 2001 From: Ildus Kurbangaliev Date: Wed, 28 Feb 2018 15:04:19 +0300 Subject: [PATCH 2/3] Use kwargs for PostgresNode.init --- testgres/node.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/testgres/node.py b/testgres/node.py index ce5070d8..61c2fdcc 100644 --- a/testgres/node.py +++ b/testgres/node.py @@ -254,19 +254,15 @@ def _collect_special_files(self): return result - def init(self, - fsync=False, - unix_sockets=True, - allow_streaming=True, - initdb_params=None): + def init(self, initdb_params=None, **kwargs): """ Perform initdb for this node. Args: + initdb_params: parameters for initdb (list). fsync: should this node use fsync to keep data safe? unix_sockets: should we enable UNIX sockets? allow_streaming: should this node add a hba entry for replication? - initdb_params: parameters for initdb (list). Returns: This instance of PostgresNode. @@ -281,9 +277,7 @@ def init(self, params=initdb_params) # initialize default config files - self.default_conf(fsync=fsync, - unix_sockets=unix_sockets, - allow_streaming=allow_streaming) + self.default_conf(**kwargs) return self From 9b06dc2578beeeaec958ef3dd5fd58ea9f7f3767 Mon Sep 17 00:00:00 2001 From: Ildus Kurbangaliev Date: Wed, 28 Feb 2018 15:06:38 +0300 Subject: [PATCH 3/3] Remove unused constant from imports import node.py --- testgres/node.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/testgres/node.py b/testgres/node.py index 61c2fdcc..ba848c2c 100644 --- a/testgres/node.py +++ b/testgres/node.py @@ -30,8 +30,7 @@ HBA_CONF_FILE, \ RECOVERY_CONF_FILE, \ PG_LOG_FILE, \ - UTILS_LOG_FILE, \ - DEFAULT_XLOG_METHOD + UTILS_LOG_FILE from .decorators import \ method_decorator, \