mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-26 15:42:30 +01:00
* feat: add shortcuts for insert_query and update_query into `Database` example: await db.insert("table_name", base_model) * remove where from argument * chore: code clean-up * extension manager * lnbits-qrcode components * parse date from dict * refactor: make `settings` a fixture * chore: remove verbose key names * fix: time column * fix: cast balance to `int` * extension toggle vue3 * vue3 @input migration * fix: payment extra and payment hash * fix dynamic fields and ext db migration * remove shadow on cards in dark theme * screwed up and made more css pushes to this branch * attempt to make chip component in settings dynamic fields * dynamic chips * qrscanner * clean init admin settings * make get_user better * add dbversion model * remove update_payment_status/extra/details * traces for value and assertion errors * refactor services * add PaymentFiatAmount * return Payment on api endpoints * rename to get_user_from_account * refactor: just refactor (#2740) * rc5 * Fix db cache (#2741) * [refactor] split services.py (#2742) * refactor: spit `core.py` (#2743) * refactor: make QR more customizable * fix: print.html * fix: qrcode options * fix: white shadow on dark theme * fix: datetime wasnt parsed in dict_to_model * add timezone for conversion * only parse timestamp for sqlite, postgres does it * log internal payment success * fix: export wallet to phone QR * Adding a customisable border theme, like gradient (#2746) * fixed mobile scan btn * fix test websocket * fix get_payments tests * dict_to_model skip none values * preimage none instead of defaulting to 0000... * fixup test real invoice tests * fixed pheonixd for wss * fix nodemanager test settings * fix lnbits funding * only insert extension when they dont exist --------- Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com> Co-authored-by: Tiago Vasconcelos <talvasconcelos@gmail.com> Co-authored-by: Arc <ben@arc.wales> Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
import json
|
|
|
|
import pytest
|
|
|
|
from lnbits.db import (
|
|
dict_to_model,
|
|
insert_query,
|
|
model_to_dict,
|
|
update_query,
|
|
)
|
|
from tests.helpers import DbTestModel, DbTestModel2, DbTestModel3
|
|
|
|
test_data = DbTestModel3(
|
|
id=1,
|
|
user="userid",
|
|
child=DbTestModel2(
|
|
id=2,
|
|
label="test",
|
|
description="mydesc",
|
|
child=DbTestModel(id=3, name="myname", value="myvalue"),
|
|
),
|
|
active=True,
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_helpers_insert_query():
|
|
q = insert_query("test_helpers_query", test_data)
|
|
assert q == (
|
|
"""INSERT INTO test_helpers_query ("id", "user", "child", "active") """
|
|
"VALUES (:id, :user, :child, :active)"
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_helpers_update_query():
|
|
q = update_query("test_helpers_query", test_data)
|
|
assert q == (
|
|
"""UPDATE test_helpers_query SET "id" = :id, "user" = """
|
|
""":user, "child" = :child, "active" = :active WHERE id = :id"""
|
|
)
|
|
|
|
|
|
child_json = json.dumps(
|
|
{
|
|
"id": 2,
|
|
"label": "test",
|
|
"description": "mydesc",
|
|
"child": {"id": 3, "name": "myname", "value": "myvalue"},
|
|
}
|
|
)
|
|
test_dict = {"id": 1, "user": "userid", "child": child_json, "active": True}
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_helpers_model_to_dict():
|
|
d = model_to_dict(test_data)
|
|
assert d.get("id") == test_data.id
|
|
assert d.get("active") == test_data.active
|
|
assert d.get("child") == child_json
|
|
assert d.get("user") == test_data.user
|
|
assert d == test_dict
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_helpers_dict_to_model():
|
|
m = dict_to_model(test_dict, DbTestModel3)
|
|
assert m == test_data
|
|
assert type(m) is DbTestModel3
|
|
assert m.active is True
|
|
assert type(m.child) is DbTestModel2
|
|
assert type(m.child.child) is DbTestModel
|