38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
import pytest
|
|
import pytest_asyncio
|
|
|
|
from lnbits.core.crud import create_account, create_wallet
|
|
from lnbits.extensions.invoices.crud import (
|
|
create_invoice_internal,
|
|
create_invoice_items,
|
|
)
|
|
from lnbits.extensions.invoices.models import CreateInvoiceData
|
|
|
|
|
|
@pytest_asyncio.fixture
|
|
async def invoices_wallet():
|
|
user = await create_account()
|
|
wallet = await create_wallet(user_id=user.id, wallet_name="invoices_test")
|
|
|
|
return wallet
|
|
|
|
|
|
@pytest_asyncio.fixture
|
|
async def accounting_invoice(invoices_wallet):
|
|
invoice_data = CreateInvoiceData(
|
|
status="open",
|
|
currency="USD",
|
|
company_name="LNbits, Inc",
|
|
first_name="Ben",
|
|
last_name="Arc",
|
|
items=[{"amount": 10.20, "description": "Item costs 10.20"}],
|
|
)
|
|
invoice = await create_invoice_internal(
|
|
wallet_id=invoices_wallet.id, data=invoice_data
|
|
)
|
|
items = await create_invoice_items(invoice_id=invoice.id, data=invoice_data.items)
|
|
|
|
invoice_dict = invoice.dict()
|
|
invoice_dict["items"] = items
|
|
return invoice_dict
|