contrib: Use text=True in subprocess over manual encoding handling
All touched Python scripts already assume and require UTF8, so manually specifying encoding or decoding for functions in the subprocess module is redundant to just using text=True, which exists since Python 3.7
This commit is contained in:
12 files changed
+43
-47
No files matched your search
@@ -43,15 +43,13 @@ class FeatureFrameworkStartupFailures(BitcoinTestFramework):
|
||||
args = [sys.executable] + sys.argv + [f"--tmpdir={self.options.tmpdir}/{subdir}", f"--internal_test={test.__name__}"] + internal_args
|
||||
|
||||
try:
|
||||
# The subprocess encoding argument gives different results for e.output
|
||||
# on Linux/Windows, so handle decoding by ourselves for consistency.
|
||||
output = subprocess.run(args, timeout=60 * self.options.timeout_factor,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode("utf-8")
|
||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True).stdout
|
||||
except subprocess.TimeoutExpired as e:
|
||||
print("Unexpected child process timeout!\n"
|
||||
"WARNING: Timeouts like this halt execution of TestNode logic, "
|
||||
"meaning dangling bitcoind processes are to be expected.\n"
|
||||
f"<CHILD OUTPUT BEGIN>\n{e.output.decode('utf-8')}\n<CHILD OUTPUT END>",
|
||||
f"<CHILD OUTPUT BEGIN>\n{e.output}\n<CHILD OUTPUT END>",
|
||||
file=sys.stderr)
|
||||
raise
|
||||
|
||||
|
||||
Reference in new issue
Block a user