Content-Length: 2982 | pFad | http://github.com/postgrespro/testgres/pull/134.patch
thub.com
From a07f10658c0be5c2647e4cc299881b8b1c08b538 Mon Sep 17 00:00:00 2001
From: vshepard
Date: Sun, 30 Jun 2024 22:07:05 +0200
Subject: [PATCH] Add expect_error to pg_upgrade
---
testgres/node.py | 5 +++--
testgres/operations/local_ops.py | 13 +++++++++----
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/testgres/node.py b/testgres/node.py
index 13d13294..36c1b3c2 100644
--- a/testgres/node.py
+++ b/testgres/node.py
@@ -1627,7 +1627,7 @@ def set_auto_conf(self, options, config='postgresql.auto.conf', rm_options={}):
self.os_ops.write(path, auto_conf, truncate=True)
- def upgrade_from(self, old_node, options=None):
+ def upgrade_from(self, old_node, options=None, expect_error=False):
"""
Upgrade this node from an old node using pg_upgrade.
@@ -1656,10 +1656,11 @@ def upgrade_from(self, old_node, options=None):
"--new-datadir", self.data_dir,
"--old-port", str(old_node.port),
"--new-port", str(self.port),
+ "--copy"
]
upgrade_command += options
- return self.os_ops.exec_command(upgrade_command)
+ return self.os_ops.exec_command(upgrade_command, expect_error=expect_error)
def _get_bin_path(self, filename):
if self.bin_dir:
diff --git a/testgres/operations/local_ops.py b/testgres/operations/local_ops.py
index 313d7060..756f5449 100644
--- a/testgres/operations/local_ops.py
+++ b/testgres/operations/local_ops.py
@@ -19,13 +19,18 @@
CMD_TIMEOUT_SEC = 60
error_markers = [b'error', b'Permission denied', b'fatal']
+err_out_markers = [b'Failure']
-def has_errors(output):
+def has_errors(output=None, error=None):
if output:
if isinstance(output, str):
output = output.encode(get_default_encoding())
- return any(marker in output for marker in error_markers)
+ return any(marker in output for marker in err_out_markers)
+ if error:
+ if isinstance(error, str):
+ error = error.encode(get_default_encoding())
+ return any(marker in error for marker in error_markers)
return False
@@ -107,8 +112,8 @@ def exec_command(self, cmd, wait_exit=False, verbose=False, expect_error=False,
process, output, error = self._run_command(cmd, shell, input, stdin, stdout, stderr, get_process, timeout, encoding)
if get_process:
return process
- if process.returncode != 0 or (has_errors(error) and not expect_error):
- self._raise_exec_exception('Utility exited with non-zero code. Error `{}`', cmd, process.returncode, error)
+ if (process.returncode != 0 or has_errors(output=output, error=error)) and not expect_error:
+ self._raise_exec_exception('Utility exited with non-zero code. Error `{}`', cmd, process.returncode, error or output)
if verbose:
return process.returncode, output, error
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/postgrespro/testgres/pull/134.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy