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
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (c) 2022 The Bitcoin Core developers
|
||||
# Copyright (c) 2022-present The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
"""Test signet miner tool"""
|
||||
@@ -102,8 +102,8 @@ class SignetMinerTest(BitcoinTestFramework):
|
||||
'genpsbt',
|
||||
f'--address={node.getnewaddress()}',
|
||||
'--poolnum=98',
|
||||
], check=True, input=json.dumps(template).encode('utf8'), capture_output=True)
|
||||
psbt = genpsbt.stdout.decode('utf8').strip()
|
||||
], check=True, text=True, input=json.dumps(template), capture_output=True)
|
||||
psbt = genpsbt.stdout.strip()
|
||||
if sign:
|
||||
self.log.debug("Sign the PSBT")
|
||||
res = node.walletprocesspsbt(psbt=psbt, sign=True, sighashtype='ALL')
|
||||
@@ -112,8 +112,8 @@ class SignetMinerTest(BitcoinTestFramework):
|
||||
solvepsbt = subprocess.run(base_cmd + [
|
||||
'solvepsbt',
|
||||
f'--grind-cmd={shlex.join(util_argv)}',
|
||||
], check=True, input=psbt.encode('utf8'), capture_output=True)
|
||||
node.submitblock(solvepsbt.stdout.decode('utf8').strip())
|
||||
], check=True, text=True, input=psbt, capture_output=True)
|
||||
node.submitblock(solvepsbt.stdout.strip())
|
||||
assert_equal(node.getblockcount(), n_blocks + 1)
|
||||
|
||||
def run_test(self):
|
||||
|
||||
Reference in new issue
Block a user