Mega-merge 1: Test invoice creation with description hash (WIP) (#812)
* check for description hash * remove unnecessary asserts for clarity * assume that description_hash is a hash already * no lock * restore bolt11.py * /api/v1/payments with hex of description * comment
This commit is contained in:
parent
a1919e0619
commit
c88e6b0e62
|
@ -122,12 +122,8 @@ async def adminkey_headers_to(to_wallet):
|
||||||
|
|
||||||
@pytest_asyncio.fixture(scope="session")
|
@pytest_asyncio.fixture(scope="session")
|
||||||
async def invoice(to_wallet):
|
async def invoice(to_wallet):
|
||||||
wallet = to_wallet
|
|
||||||
data = await get_random_invoice_data()
|
data = await get_random_invoice_data()
|
||||||
invoiceData = CreateInvoiceData(**data)
|
invoiceData = CreateInvoiceData(**data)
|
||||||
stuff_lock = asyncio.Lock()
|
invoice = await api_payments_create_invoice(invoiceData, to_wallet)
|
||||||
async with stuff_lock:
|
|
||||||
invoice = await api_payments_create_invoice(invoiceData, wallet)
|
|
||||||
await asyncio.sleep(1)
|
|
||||||
yield invoice
|
yield invoice
|
||||||
del invoice
|
del invoice
|
||||||
|
|
|
@ -1,8 +1,15 @@
|
||||||
import pytest
|
import pytest
|
||||||
import pytest_asyncio
|
import pytest_asyncio
|
||||||
|
|
||||||
|
import hashlib
|
||||||
|
from binascii import hexlify
|
||||||
|
|
||||||
|
from lnbits import bolt11
|
||||||
from lnbits.core.crud import get_wallet
|
from lnbits.core.crud import get_wallet
|
||||||
from lnbits.core.views.api import api_payment
|
from lnbits.core.views.api import api_payment
|
||||||
|
|
||||||
|
from lnbits.core.views.api import api_payments_create_invoice, CreateInvoiceData
|
||||||
|
|
||||||
from ...helpers import get_random_invoice_data
|
from ...helpers import get_random_invoice_data
|
||||||
|
|
||||||
# check if the client is working
|
# check if the client is working
|
||||||
|
@ -179,3 +186,21 @@ async def test_api_payment_with_key(invoice, inkey_headers_from):
|
||||||
assert type(response) == dict
|
assert type(response) == dict
|
||||||
assert response["paid"] == True
|
assert response["paid"] == True
|
||||||
assert "details" in response
|
assert "details" in response
|
||||||
|
|
||||||
|
|
||||||
|
# check POST /api/v1/payments: invoice creation with a description hash
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_create_invoice_with_description_hash(client, inkey_headers_to):
|
||||||
|
data = await get_random_invoice_data()
|
||||||
|
descr_hash = hashlib.sha256("asdasdasd".encode("utf-8")).hexdigest()
|
||||||
|
data["description_hash"] = "asdasdasd".encode("utf-8").hex()
|
||||||
|
|
||||||
|
response = await client.post(
|
||||||
|
"/api/v1/payments", json=data, headers=inkey_headers_to
|
||||||
|
)
|
||||||
|
invoice = response.json()
|
||||||
|
|
||||||
|
invoice_bolt11 = bolt11.decode(invoice["payment_request"])
|
||||||
|
assert invoice_bolt11.description_hash == descr_hash
|
||||||
|
assert invoice_bolt11.description is None
|
||||||
|
return invoice
|
||||||
|
|
Loading…
Reference in New Issue
Block a user