mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 23:24:27 +01:00
test_lightningd.py: Add tests for any-amount invoices.
This commit is contained in:
@@ -330,6 +330,18 @@ class LightningDTests(BaseLightningDTests):
|
|||||||
outputs = l1.db_query('SELECT pay_index IS NULL AS q FROM invoices WHERE label="label";')
|
outputs = l1.db_query('SELECT pay_index IS NULL AS q FROM invoices WHERE label="label";')
|
||||||
assert len(outputs) == 1 and outputs[0]['q'] != 0
|
assert len(outputs) == 1 and outputs[0]['q'] != 0
|
||||||
|
|
||||||
|
# Check any-amount invoice
|
||||||
|
inv = l1.rpc.invoice("any", 'label2', 'description2');
|
||||||
|
b11 = inv['bolt11']
|
||||||
|
# Amount usually comes after currency (tb in our case),
|
||||||
|
# but an any-amount invoices will have no amount
|
||||||
|
assert b11.startswith("lntb1")
|
||||||
|
# By bech32 rules, the last '1' digit is the separator
|
||||||
|
# between the human-readable and data parts. We want
|
||||||
|
# to match the "lntb1" above with the '1' digit as the
|
||||||
|
# separator, and not for example "lntb1m1....".
|
||||||
|
assert b11.count('1') == 1
|
||||||
|
|
||||||
def test_invoice_expiry(self):
|
def test_invoice_expiry(self):
|
||||||
l1,l2 = self.connect()
|
l1,l2 = self.connect()
|
||||||
|
|
||||||
@@ -730,6 +742,12 @@ class LightningDTests(BaseLightningDTests):
|
|||||||
outputs = l2.db_query('SELECT pay_index IS NOT NULL AS q FROM invoices WHERE label="label";')
|
outputs = l2.db_query('SELECT pay_index IS NOT NULL AS q FROM invoices WHERE label="label";')
|
||||||
assert len(outputs) == 1 and outputs[0]['q'] != 0
|
assert len(outputs) == 1 and outputs[0]['q'] != 0
|
||||||
|
|
||||||
|
# Check payment of any-amount invoice.
|
||||||
|
for i in range(5):
|
||||||
|
label = "any{}".format(i)
|
||||||
|
inv = l2.rpc.invoice("any", label, 'description')['bolt11']
|
||||||
|
l1.rpc.pay(inv, random.randint(1000, 999999))
|
||||||
|
|
||||||
def test_bad_opening(self):
|
def test_bad_opening(self):
|
||||||
# l1 asks for a too-long locktime
|
# l1 asks for a too-long locktime
|
||||||
l1 = self.node_factory.get_node(options=['--locktime-blocks=100'])
|
l1 = self.node_factory.get_node(options=['--locktime-blocks=100'])
|
||||||
|
|||||||
Reference in New Issue
Block a user