Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F13115480
D14776.id43053.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
16 KB
Subscribers
None
D14776.id43053.diff
View Options
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
Details
Attached
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)
Attached To
D14776: [chronik] Remove some boilerplate from the test_framework
Event Timeline
Log In to Comment