mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 22:45:27 +01:00
test_lightningd.py: Add tests for any-amount invoices.
This commit is contained in:
parent
816298123f
commit
5f8796af0c
1 changed files with 18 additions and 0 deletions
|
@ -330,6 +330,18 @@ class LightningDTests(BaseLightningDTests):
|
|||
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
|
||||
|
||||
# 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):
|
||||
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";')
|
||||
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):
|
||||
# l1 asks for a too-long locktime
|
||||
l1 = self.node_factory.get_node(options=['--locktime-blocks=100'])
|
||||
|
|
Loading…
Add table
Reference in a new issue