Page MenuHomePhabricator

D14776.id43053.diff
No OneTemporary

D14776.id43053.diff

diff --git a/test/functional/chronik_avalanche.py b/test/functional/chronik_avalanche.py
--- a/test/functional/chronik_avalanche.py
+++ b/test/functional/chronik_avalanche.py
@@ -40,10 +40,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
# Build a fake quorum of nodes.
def get_quorum():
diff --git a/test/functional/chronik_block.py b/test/functional/chronik_block.py
--- a/test/functional/chronik_block.py
+++ b/test/functional/chronik_block.py
@@ -23,10 +23,10 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
+
+ from test_framework.chronik.client import pb
expected_genesis_block = pb.Block(
block_info=pb.BlockInfo(
diff --git a/test/functional/chronik_block_info.py b/test/functional/chronik_block_info.py
--- a/test/functional/chronik_block_info.py
+++ b/test/functional/chronik_block_info.py
@@ -35,11 +35,9 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
node.setmocktime(1300000000)
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
@@ -64,6 +62,8 @@
tip_hash = self.generatetoaddress(node, 1, ADDRESS_ECREG_UNSPENDABLE)[-1]
+ from test_framework.chronik.client import pb
+
assert_equal(
chronik.block(tip_hash).ok(),
pb.Block(
diff --git a/test/functional/chronik_block_txs.py b/test/functional/chronik_block_txs.py
--- a/test/functional/chronik_block_txs.py
+++ b/test/functional/chronik_block_txs.py
@@ -36,12 +36,9 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
- from test_framework.chronik.test_data import genesis_cb_tx
-
node = self.nodes[0]
node.setmocktime(1300000000)
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
@@ -80,11 +77,15 @@
+ "number too large to fit in target type",
)
+ from test_framework.chronik.client import pb
+
assert_equal(
chronik.block_txs(GENESIS_BLOCK_HASH, page=2**32 - 1, page_size=200).ok(),
pb.TxHistoryPage(txs=[], num_pages=1, num_txs=1),
)
+ from test_framework.chronik.test_data import genesis_cb_tx
+
assert_equal(
chronik.block_txs(GENESIS_BLOCK_HASH).ok(),
pb.TxHistoryPage(
diff --git a/test/functional/chronik_blockchain_info.py b/test/functional/chronik_blockchain_info.py
--- a/test/functional/chronik_blockchain_info.py
+++ b/test/functional/chronik_blockchain_info.py
@@ -22,10 +22,10 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
+
+ from test_framework.chronik.client import pb
assert_equal(
chronik.blockchain_info().ok(),
diff --git a/test/functional/chronik_blocks.py b/test/functional/chronik_blocks.py
--- a/test/functional/chronik_blocks.py
+++ b/test/functional/chronik_blocks.py
@@ -22,11 +22,9 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
node.setmocktime(1300000000)
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
assert_equal(
chronik.blocks(-1, 0).err(400).msg, "400: Invalid block start height: -1"
@@ -48,6 +46,8 @@
f"400: Blocks page size too large, may not be above 500 but got {2**31}",
)
+ from test_framework.chronik.client import pb
+
genesis_info = pb.BlockInfo(
hash=bytes.fromhex(GENESIS_BLOCK_HASH)[::-1],
prev_hash=bytes(32),
diff --git a/test/functional/chronik_chronik_info.py b/test/functional/chronik_chronik_info.py
--- a/test/functional/chronik_chronik_info.py
+++ b/test/functional/chronik_chronik_info.py
@@ -43,10 +43,10 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
+
+ from test_framework.chronik.client import pb
assert_equal(
chronik.chronik_info().ok(),
diff --git a/test/functional/chronik_pause.py b/test/functional/chronik_pause.py
--- a/test/functional/chronik_pause.py
+++ b/test/functional/chronik_pause.py
@@ -34,10 +34,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
chronik.pause().err(403)
chronik.resume().err(403)
diff --git a/test/functional/chronik_raw_tx.py b/test/functional/chronik_raw_tx.py
--- a/test/functional/chronik_raw_tx.py
+++ b/test/functional/chronik_raw_tx.py
@@ -29,10 +29,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
assert_equal(chronik.tx("0").err(400).msg, "400: Not a txid: 0")
assert_equal(chronik.tx("123").err(400).msg, "400: Not a txid: 123")
@@ -48,6 +46,8 @@
f'404: Transaction {"00"*32} not found in the index',
)
+ from test_framework.chronik.client import pb
+
# Verify queried genesis tx matches
# Note: unlike getrawtransaction, this also works on the Genesis coinbase
assert_equal(
diff --git a/test/functional/chronik_resync.py b/test/functional/chronik_resync.py
--- a/test/functional/chronik_resync.py
+++ b/test/functional/chronik_resync.py
@@ -22,10 +22,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
# Mine 100 blocks, that Chronik doesn't index
block_hashes = [GENESIS_BLOCK_HASH] + self.generatetoaddress(
diff --git a/test/functional/chronik_script_confirmed_txs.py b/test/functional/chronik_script_confirmed_txs.py
--- a/test/functional/chronik_script_confirmed_txs.py
+++ b/test/functional/chronik_script_confirmed_txs.py
@@ -30,11 +30,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
- from test_framework.chronik.test_data import genesis_cb_tx
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
mocktime = 1300000000
@@ -108,6 +105,8 @@
+ "number too large to fit in target type",
)
+ from test_framework.chronik.client import pb
+
# Handle overflow gracefully on 32-bit
assert_equal(
chronik.script("p2pk", GENESIS_CB_PK)
@@ -119,6 +118,8 @@
genesis_db_script_history = (
chronik.script("p2pk", GENESIS_CB_PK).confirmed_txs().ok()
)
+ from test_framework.chronik.test_data import genesis_cb_tx
+
assert_equal(
genesis_db_script_history,
pb.TxHistoryPage(txs=[genesis_cb_tx()], num_pages=1, num_txs=1),
diff --git a/test/functional/chronik_script_history.py b/test/functional/chronik_script_history.py
--- a/test/functional/chronik_script_history.py
+++ b/test/functional/chronik_script_history.py
@@ -35,11 +35,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
- from test_framework.chronik.test_data import genesis_cb_tx
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port, timeout=4)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
mocktime = 1300000000
@@ -112,6 +109,8 @@
+ "number too large to fit in target type",
)
+ from test_framework.chronik.client import pb
+
# Handle overflow gracefully on 32-bit
assert_equal(
chronik.script("p2pk", GENESIS_CB_PK)
@@ -121,6 +120,8 @@
)
genesis_db_script_history = chronik.script("p2pk", GENESIS_CB_PK).history().ok()
+ from test_framework.chronik.test_data import genesis_cb_tx
+
assert_equal(
genesis_db_script_history,
pb.TxHistoryPage(txs=[genesis_cb_tx()], num_pages=1, num_txs=1),
diff --git a/test/functional/chronik_script_unconfirmed_txs.py b/test/functional/chronik_script_unconfirmed_txs.py
--- a/test/functional/chronik_script_unconfirmed_txs.py
+++ b/test/functional/chronik_script_unconfirmed_txs.py
@@ -35,10 +35,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
mocktime = 1300000000
@@ -93,6 +91,8 @@
+ "expected one of [33, 65] but got 3 bytes",
)
+ from test_framework.chronik.client import pb
+
# No txs in mempool for the genesis pubkey
assert_equal(
chronik.script("p2pk", GENESIS_CB_PK).unconfirmed_txs().ok(),
diff --git a/test/functional/chronik_script_utxos.py b/test/functional/chronik_script_utxos.py
--- a/test/functional/chronik_script_utxos.py
+++ b/test/functional/chronik_script_utxos.py
@@ -36,11 +36,9 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
node.setmocktime(1300000000)
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
@@ -80,6 +78,8 @@
+ "expected one of [33, 65] but got 3 bytes",
)
+ from test_framework.chronik.client import pb
+
# Test Genesis pubkey UTXO
coinvalue = 5000000000
assert_equal(
diff --git a/test/functional/chronik_spent_by.py b/test/functional/chronik_spent_by.py
--- a/test/functional/chronik_spent_by.py
+++ b/test/functional/chronik_spent_by.py
@@ -35,11 +35,9 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
node.setmocktime(1300000000)
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
@@ -93,6 +91,8 @@
expected_outpoints,
)
+ from test_framework.chronik.client import pb
+
# Initially, none of the outputs are spent
check_outputs_spent([pb.SpentBy()] * len(send_values), has_been_mined=False)
diff --git a/test/functional/chronik_tx.py b/test/functional/chronik_tx.py
--- a/test/functional/chronik_tx.py
+++ b/test/functional/chronik_tx.py
@@ -31,11 +31,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
- from test_framework.chronik.test_data import genesis_cb_tx
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
peer = node.add_p2p_connection(P2PDataStore())
node.setmocktime(1333333337)
@@ -54,6 +51,8 @@
f'404: Transaction {"00"*32} not found in the index',
)
+ from test_framework.chronik.test_data import genesis_cb_tx
+
# Verify queried genesis tx matches
assert_equal(chronik.tx(GENESIS_CB_TXID).ok(), genesis_cb_tx())
@@ -87,6 +86,8 @@
# Submit tx to mempool
txid = node.sendrawtransaction(tx.serialize().hex())
+ from test_framework.chronik.client import pb
+
proto_tx = pb.Tx(
txid=bytes.fromhex(txid)[::-1],
version=tx.nVersion,
diff --git a/test/functional/chronik_ws.py b/test/functional/chronik_ws.py
--- a/test/functional/chronik_ws.py
+++ b/test/functional/chronik_ws.py
@@ -32,10 +32,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
# Build a fake quorum of nodes.
def get_quorum():
@@ -67,6 +65,8 @@
tip = self.generate(node, 1)[-1]
height = node.getblockcount()
+ from test_framework.chronik.client import pb
+
# We get a CONNECTED msg
assert_equal(
ws.recv(),
diff --git a/test/functional/chronik_ws_script.py b/test/functional/chronik_ws_script.py
--- a/test/functional/chronik_ws_script.py
+++ b/test/functional/chronik_ws_script.py
@@ -47,10 +47,8 @@
self.skip_if_no_chronik()
def run_test(self):
- from test_framework.chronik.client import ChronikClient, pb
-
node = self.nodes[0]
- chronik = ChronikClient("127.0.0.1", node.chronik_port)
+ chronik = node.get_chronik_client()
node.setmocktime(1300000000)
peer = node.add_p2p_connection(P2PDataStore())
@@ -104,6 +102,8 @@
# Send the tx, will send updates to ws1 and ws2
txid = node.sendrawtransaction(tx.serialize().hex())
+ from test_framework.chronik.client import pb
+
expected_msg = pb.WsMsg(
tx=pb.MsgTx(
msg_type=pb.TX_ADDED_TO_MEMPOOL,
diff --git a/test/functional/test_framework/chronik/client.py b/test/functional/test_framework/chronik/client.py
--- a/test/functional/test_framework/chronik/client.py
+++ b/test/functional/test_framework/chronik/client.py
@@ -182,7 +182,7 @@
ws = websocket.WebSocket()
ws.connect(
f"{'wss' if self.https else 'ws'}://{self.host}:{self.port}/ws",
- timeout=timeout,
+ timeout=timeout if timeout is not None else self.timeout,
)
return ChronikWs(ws)
diff --git a/test/functional/test_framework/test_node.py b/test/functional/test_framework/test_node.py
--- a/test/functional/test_framework/test_node.py
+++ b/test/functional/test_framework/test_node.py
@@ -937,6 +937,17 @@
timeout_factor=self.timeout_factor,
)
+ def get_chronik_client(self):
+ """Return a ChronikClient instance that communicates with this node"""
+ # Chronik might not be built-in so let's not import each time this file
+ # is included but only where it's expected to not explode.
+ from .chronik.client import ChronikClient
+
+ # host is always None in practice, we should get rid of it at some
+ # point. In the meantime, let's properly handle the API.
+ host = self.host if self.host is not None else "127.0.0.1"
+ return ChronikClient(host, self.chronik_port)
+
class TestNodeCLIAttr:
def __init__(self, cli, command):

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 1, 11:11 (19 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5187531
Default Alt Text
D14776.id43053.diff (16 KB)

Event Timeline