aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2024-04-01 18:59:33 +0200
committerfanquake <fanquake@gmail.com>2024-04-01 18:59:42 +0200
commit23ba39470c3d155a65f0616f8848ada730658301 (patch)
treefbc3fb1f44b2883d2f6712fed63c961f4d914c59
parent948ecf181e84010b38bfdc05135a44e3fd5816fd (diff)
parent2eb5175de87c798af328de3f2147aac7879eaa10 (diff)
downloadbitcoin-23ba39470c3d155a65f0616f8848ada730658301.tar.xz
Merge bitcoin/bitcoin#29753: test: fix StopIteration exception in p2p_node_network_limited.py
2eb5175de87c798af328de3f2147aac7879eaa10 test: fix StopIteration exception in p2p_node_network_limited.py (furszy) Pull request description: Fixes #29731 The `next()` call throws an exception if the default parameter is omitted and the iterator is exhausted. Fix it by providing a default value. The failure can be tested by commenting out lines 90 and 91 in the test (the `self.connect_nodes(2, 0)`). Since there is no connection, the node in question retrieves a single element in the 'getchaintips()' call. This scenario without the fix, aborts the test right away, throwing an `StopIteration` exception, and with the fix, the test properly waits until the timeout (`wait_until()` call). ACKs for top commit: maflcko: review ACK 2eb5175de87c798af328de3f2147aac7879eaa10 brunoerg: crACK 2eb5175de87c798af328de3f2147aac7879eaa10 BrandonOdiwuor: crACK 2eb5175de87c798af328de3f2147aac7879eaa10 tdb3: Tested ACK for 2eb5175de87c798af328de3f2147aac7879eaa10. Tree-SHA512: b0873eb4d3334146fd250cd2cd23add3e744877033c8bfa4eb8dff36633100604adf49dd7846856ddfa88c9768663f095db705c00eef3641618df8fc13f8c2c5
-rwxr-xr-xtest/functional/p2p_node_network_limited.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/test/functional/p2p_node_network_limited.py b/test/functional/p2p_node_network_limited.py
index 467bbad09c..8f145b954a 100755
--- a/test/functional/p2p_node_network_limited.py
+++ b/test/functional/p2p_node_network_limited.py
@@ -92,7 +92,8 @@ class NodeNetworkLimitedTest(BitcoinTestFramework):
# Wait until the full_node is headers-wise sync
best_block_hash = pruned_node.getbestblockhash()
- self.wait_until(lambda: next(filter(lambda x: x['hash'] == best_block_hash, full_node.getchaintips()))['status'] == "headers-only")
+ default_value = {'status': ''} # No status
+ self.wait_until(lambda: next(filter(lambda x: x['hash'] == best_block_hash, full_node.getchaintips()), default_value)['status'] == "headers-only")
# Now, since the node aims to download a window of 1024 blocks,
# ensure it requests the blocks below the threshold only (with a