Skip to content

Commit

Permalink
add fiber test
Browse files Browse the repository at this point in the history
  • Loading branch information
gpBlockchain committed Dec 9, 2024
1 parent f5beacf commit 05f1c12
Show file tree
Hide file tree
Showing 19 changed files with 562 additions and 126 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ def test_accept_chanel_same_channel_same_time(self):
self.fiber2.get_client(), self.fiber1.get_peer_id(), "CHANNEL_READY"
)

@pytest.mark.skip("检查是否有问题")
def test_accept_channel_diff_channel_same_time(self):
"""
accept channel: Accept multiple different channels at the same time
Expand Down Expand Up @@ -106,6 +107,17 @@ def test_accept_channel_diff_channel_same_time(self):
}
)
time.sleep(1)
temporary_other_channels = []
for i in range(5):
temporary_other_channels.append(
fiber3.get_client().open_channel(
{
"peer_id": self.fiber2.get_peer_id(),
"funding_amount": hex(63 * 100000000),
"public": True,
}
)
)

# Step 6: Accept the first channel with fiber2 as the client
self.fiber2.get_client().accept_channel(
Expand All @@ -123,6 +135,17 @@ def test_accept_channel_diff_channel_same_time(self):
"funding_amount": hex(62 * 100000000),
}
)
time.sleep(0.1)
for i in range(len(temporary_other_channels)):
self.fiber2.get_client().accept_channel(
{
"temporary_channel_id": temporary_other_channels[i][
"temporary_channel_id"
],
"funding_amount": hex(62 * 100000000),
}
)
time.sleep(0.1)

# Step 8: Wait for the first channel state to be "CHANNEL_READY"
self.wait_for_channel_state(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ def test_ckb_funding_amount_zero(self):
"funding_amount": "0x0",
}
)
expected_error_message = (
"The funding amount should be greater than the reserved amount"
)
expected_error_message = "should be greater than or equal to 6200000000"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
Expand Down
42 changes: 35 additions & 7 deletions test_cases/fiber/devnet/cancel_invoice/test_cancel_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,22 +321,50 @@ def test_cancel_invoice_that_statue_is_receive(self):
}
)
before_channel = self.fiber2.get_client().list_channels({})

payment = self.fiber2.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
self.wait_invoice_state(
self.fiber1,
invoice["invoice"]["data"]["payment_hash"],
"Received",
20,
0.0001,
)
# self.wait_invoice_state(
# self.fiber1,
# invoice["invoice"]["data"]["payment_hash"],
# "Received",
# 20,
# 0,
# )
self.fiber1.get_client().cancel_invoice(
{"payment_hash": invoice["invoice"]["data"]["payment_hash"]}
)
self.wait_payment_state(self.fiber2, payment["payment_hash"], "Failed")
self.fiber1.get_client().get_invoice(
{"payment_hash": invoice["invoice"]["data"]["payment_hash"]}
)
channels = self.fiber2.get_client().list_channels({})
assert channels == before_channel

invoice_balance = 1 * 100000000
invoice = self.fiber1.get_client().new_invoice(
{
"amount": hex(invoice_balance),
"currency": "Fibd",
"description": "test invoice generated by node2",
"expiry": "0xe10",
"final_cltv": "0x28",
"payment_preimage": self.generate_random_preimage(),
"hash_algorithm": "sha256",
}
)
before_channel = self.fiber2.get_client().list_channels({})

payment = self.fiber2.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
self.wait_payment_state(self.fiber2, payment["payment_hash"], "Success")
after_channel = self.fiber2.get_client().list_channels({})
assert after_channel["channels"][0]["local_balance"] == hex(
int(before_channel["channels"][0]["local_balance"], 16) - invoice_balance
)
2 changes: 1 addition & 1 deletion test_cases/fiber/devnet/graph_nodes/test_graph_nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def test_node_info(self):
print(graph_nodes)
node_info = self.fiber1.get_client().node_info()
if graph_nodes["nodes"][0]["node_id"] != node_info["public_key"]:
graph_nodes["nodes"] = graph_nodes["nodes"].reverse()
graph_nodes["nodes"].reverse()
for i in range(len(graph_nodes["nodes"])):
node = graph_nodes["nodes"][i]
node_info = self.fibers[i].get_client().node_info()
Expand Down
37 changes: 36 additions & 1 deletion test_cases/fiber/devnet/list_channels/test_list_channels.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,11 @@ def test_is_public(self):
channels = self.fiber1.get_client().list_channels({})
assert channels["channels"][0]["is_public"] == True

def test_channel_outpoint(self):
def test_check_channel_result(self):
"""
Returns:
"""
begin_time = time.time()
temporary_channel_id = self.fiber1.get_client().open_channel(
{
"peer_id": self.fiber2.get_peer_id(),
Expand All @@ -219,10 +220,44 @@ def test_channel_outpoint(self):
channels = self.fiber1.get_client().list_channels(
{"peer_id": self.fiber2.get_peer_id()}
)
# channel_id
assert channels["channels"][0]["channel_id"] is not None

# is_public
assert channels["channels"][0]["is_public"] is True

# channel_outpoint
assert channels["channels"][0]["channel_outpoint"] is not None
print("channel_outpoint:", channels["channels"][0]["channel_outpoint"])
assert open_tx_hash in channels["channels"][0]["channel_outpoint"]

# peer_id
assert channels["channels"][0]["peer_id"] == self.fiber2.get_peer_id()

# funding_udt_type_script
assert channels["channels"][0][
"funding_udt_type_script"
] == self.get_account_udt_script(self.fiber1.account_private)

# state
assert channels["channels"][0]["state"]["state_name"] == "CHANNEL_READY"

# local_balance
assert channels["channels"][0]["local_balance"] == hex(1000 * 100000000)

# offered_tlc_balance
assert channels["channels"][0]["offered_tlc_balance"] == hex(0)

# remote_balance
assert channels["channels"][0]["remote_balance"] == hex(0)

# received_tlc_balance
assert channels["channels"][0]["received_tlc_balance"] == hex(0)

# created_at
assert int(channels["channels"][0]["created_at"], 16) / 1000 > begin_time
assert int(channels["channels"][0]["created_at"], 16) / 1000 < time.time()

@pytest.mark.skip("close channels can't found")
def test_close_channels(self):
temporary_channel_id = self.fiber1.get_client().open_channel(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ def test_commitment_fee_rate_is_1(self):
f"not found in actual string '{exc_info.value.args[0]}'"
)

@pytest.mark.skip("commitment_fee_rate 不准确")
def test_check_commitment_fee_rate_is_none(self):
"""
Expand Down Expand Up @@ -154,7 +155,7 @@ def test_check_commitment_fee_rate_is_none(self):
)
self.wait_and_check_tx_pool_fee(1000)

# @pytest.mark.skip("手动测试")
@pytest.mark.skip("commitment_fee_rate 不准确")
def test_check_commitment_fee_rate(self):
"""
验证我方的commit fee
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ def test_funding_amount_udt_0xfffffffffffffffffffffffffffffff(self):
f"not found in actual string '{exc_info.value.args[0]}'"
)

@pytest.mark.skip("https://github.com/nervosnetwork/fiber/issues/373")
def test_funding_amount_udt_gt_account_balance(self):
account3_private = self.generate_account(
1000, self.fiber1.account_private, 1000 * 100000000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def test_funding_udt_type_script_not_exist(self):
}
)
time.sleep(3)
channels = self.fiber1.get_client().list_channels({})
channels = self.fiber3.get_client().list_channels({})
assert len(channels["channels"]) == 0

with pytest.raises(Exception) as exc_info:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def test_max_tlc_number_in_flight_none(self):
}
)
add_tlc_list.append(add_tlc)
# time.sleep(0.5)
time.sleep(1)
time.sleep(10)
with pytest.raises(Exception) as exc_info:
payment_preimage = self.generate_random_preimage()
Expand Down Expand Up @@ -143,17 +143,13 @@ def test_max_tlc_number_in_flight_zero(self):
)
before_channel = self.fiber1.get_client().list_channels({})

with pytest.raises(Exception) as exc_info:
self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
payment = self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in payment["failed_error"]

channels = self.fiber1.get_client().list_channels(
{"peer_id": self.fiber2.get_peer_id()}
Expand Down Expand Up @@ -257,7 +253,7 @@ def test_max_tlc_number_in_flight_not_eq_default(self):
}
)
add_tlc_list.append(add_tlc)
# time.sleep(0.5)
time.sleep(1)
time.sleep(10)
with pytest.raises(Exception) as exc_info:
payment_preimage = self.generate_random_preimage()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,18 +68,14 @@ def test_max_tlc_value_in_flight_is_zero(self):
},
}
)
with pytest.raises(Exception) as exc_info:
self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
payment = self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
#
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in payment["failed_error"]

# invoice_balance = hex(160 * 100000000)
# payment_preimage = self.generate_random_preimage()
# invoice = self.fiber1.get_client().new_invoice(
Expand Down Expand Up @@ -511,17 +507,13 @@ def test_ckb_max_tlc_value_in_flight_not_eq_default(self):
)
before_channel = self.fiber1.get_client().list_channels({})

with pytest.raises(Exception) as exc_info:
self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
payment = self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in payment["failed_error"]
# send 1 ckb
invoice_balance = hex(1 * 100000000)
payment_preimage = self.generate_random_preimage()
Expand Down Expand Up @@ -596,17 +588,13 @@ def test_ckb_max_tlc_value_in_flight_not_eq_default(self):
)
before_channel = self.fiber2.get_client().list_channels({})

with pytest.raises(Exception) as exc_info:
self.fiber2.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
payment = self.fiber2.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in payment["failed_error"]
# node2 send 1 ckb
invoice_balance = hex(1 * 100000000)
payment_preimage = self.generate_random_preimage()
Expand Down Expand Up @@ -717,17 +705,13 @@ def test_udt_max_tlc_value_in_flight_not_eq_default(self):
)
before_channel = self.fiber1.get_client().list_channels({})

with pytest.raises(Exception) as exc_info:
self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
payment = self.fiber1.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in payment["failed_error"]
# send 1 ckb
invoice_balance = hex(1 * 100000000)
payment_preimage = self.generate_random_preimage()
Expand Down Expand Up @@ -811,17 +795,13 @@ def test_udt_max_tlc_value_in_flight_not_eq_default(self):
)
before_channel = self.fiber2.get_client().list_channels({})

with pytest.raises(Exception) as exc_info:
self.fiber2.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
payment = self.fiber2.get_client().send_payment(
{
"invoice": invoice["invoice_address"],
}
)
expected_error_message = "TemporaryChannelFailure"
assert expected_error_message in payment["failed_error"]

# node2 send 1 ckb
invoice_balance = hex(1 * 100000000)
Expand Down
Loading

0 comments on commit 05f1c12

Please sign in to comment.