tests: Improve test_02_leader_recover_a_lock_tx
Some checks are pending
ci / ci (3.12) (push) Waiting to run

This commit is contained in:
tecnovert 2025-01-13 21:15:30 +02:00
parent 3cea5449c9
commit 159974d414
No known key found for this signature in database
GPG key ID: 8ED6D8750C4E3F93
3 changed files with 32 additions and 4 deletions

View file

@ -5125,6 +5125,13 @@ class BasicSwap(BaseApp):
if TxTypes.XMR_SWAP_A_LOCK_REFUND_SWIPE not in bid.txns:
try:
if self.haveDebugInd(
bid.bid_id,
DebugTypes.BID_DONT_SPEND_COIN_A_LOCK_REFUND2,
):
raise TemporaryError(
"Debug: BID_DONT_SPEND_COIN_A_LOCK_REFUND2"
)
txid = ci_from.publishTx(xmr_swap.a_lock_refund_swipe_tx)
self.logBidEvent(
bid.bid_id,
@ -6193,6 +6200,13 @@ class BasicSwap(BaseApp):
self.logBidEvent(
bid.bid_id, EventLogTypes.LOCK_TX_A_REFUND_TX_SEEN, "", use_cursor
)
if TxTypes.XMR_SWAP_A_LOCK_REFUND not in bid.txns:
bid.txns[TxTypes.XMR_SWAP_A_LOCK_REFUND] = SwapTx(
bid_id=bid.bid_id,
tx_type=TxTypes.XMR_SWAP_A_LOCK_REFUND,
txid=xmr_swap.a_lock_refund_tx_id,
)
else:
self.setBidError(
bid.bid_id,
@ -8814,8 +8828,10 @@ class BasicSwap(BaseApp):
b_fee_rate: int = xmr_offer.a_fee_rate if reverse_bid else xmr_offer.b_fee_rate
try:
chain_height = ci_to.getChainHeight()
lock_tx_depth = chain_height - bid.xmr_b_lock_tx.chain_height
if bid.xmr_b_lock_tx is None:
raise TemporaryError("Chain B lock tx not found.")
chain_height: int = ci_to.getChainHeight()
lock_tx_depth: int = chain_height - bid.xmr_b_lock_tx.chain_height
if lock_tx_depth < ci_to.depth_spendable():
raise TemporaryError(
f"Chain B lock tx still confirming {lock_tx_depth} / {ci_to.depth_spendable()}."

View file

@ -148,7 +148,7 @@ def stopDaemons(daemons):
def wait_for_bid(
delay_event, swap_client, bid_id, state=None, sent: bool = False, wait_for: int = 20
) -> None:
logging.info("wait_for_bid %s", bid_id.hex())
swap_client.log.debug(f"TEST: wait_for_bid {bid_id.hex()}")
for i in range(wait_for):
if delay_event.is_set():
raise ValueError("Test stopped.")
@ -161,6 +161,10 @@ def wait_for_bid(
assert len(bids) < 2
for bid in bids:
if bid[2] == bid_id:
if i > 0 and i % 10 == 0:
swap_client.log.debug(
f"TEST: wait_for_bid {bid_id.hex()}: Bid state {bid[5]}, target {state}."
)
if isinstance(state, (list, tuple)):
if bid[5] in state:
return
@ -169,6 +173,11 @@ def wait_for_bid(
elif state is not None and state != bid[5]:
continue
return
else:
if i > 0 and i % 10 == 0:
swap_client.log.debug(
f"TEST: wait_for_bid {bid_id.hex()}: Bid not found."
)
raise ValueError("wait_for_bid timed out.")

View file

@ -1503,7 +1503,7 @@ class Test(BaseTest):
101 * COIN,
SwapTypes.XMR_SWAP,
lock_type=TxLockTypes.SEQUENCE_LOCK_BLOCKS,
lock_value=12,
lock_value=16,
)
wait_for_offer(test_delay_event, swap_clients[1], offer_id)
offer = swap_clients[1].getOffer(offer_id)
@ -1522,6 +1522,9 @@ class Test(BaseTest):
assert xmr_swap
swap_clients[1].setBidDebugInd(bid_id, DebugTypes.BID_STOP_AFTER_COIN_A_LOCK)
swap_clients[1].setBidDebugInd(
bid_id, DebugTypes.BID_DONT_SPEND_COIN_A_LOCK_REFUND2, False
)
swap_clients[0].acceptXmrBid(bid_id)