test: test event CRUD
This commit is contained in:
parent
d79901b4fb
commit
ad2fdbe0c1
1 changed files with 24 additions and 6 deletions
|
|
@ -5,7 +5,8 @@ import pytest
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from lnbits.extensions.nostrrelay.models import NostrEvent
|
from lnbits.extensions.nostrrelay.crud import create_event, get_event, get_events
|
||||||
|
from lnbits.extensions.nostrrelay.models import NostrEvent, NostrFilter
|
||||||
|
|
||||||
FIXTURES_PATH = "tests/extensions/nostrrelay/fixture"
|
FIXTURES_PATH = "tests/extensions/nostrrelay/fixture"
|
||||||
|
|
||||||
|
|
@ -26,20 +27,37 @@ def invalid_events() -> List[EventFixture]:
|
||||||
return [EventFixture.parse_obj(e) for e in data["invalid"]]
|
return [EventFixture.parse_obj(e) for e in data["invalid"]]
|
||||||
|
|
||||||
|
|
||||||
def test_event_id_and_signature_ok(valid_events: List[EventFixture]):
|
def test_valid_event_id_and_signature(valid_events: List[EventFixture]):
|
||||||
for f in valid_events:
|
for f in valid_events:
|
||||||
try:
|
try:
|
||||||
f.data.check_signature()
|
f.data.check_signature()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Failed for fixture: '{f.name}'")
|
logger.error(f"Invalid 'id' ot 'signature' for fixture: '{f.name}'")
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
def test_event_id_and_signature_invalid(invalid_events: List[EventFixture]):
|
def test_invalid_event_id_and_signature(invalid_events: List[EventFixture]):
|
||||||
for f in invalid_events:
|
for f in invalid_events:
|
||||||
with pytest.raises(ValueError, match=f.exception):
|
with pytest.raises(ValueError, match=f.exception):
|
||||||
f.data.check_signature()
|
f.data.check_signature()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_valid_event_crud(valid_events: List[EventFixture]):
|
||||||
|
relay_id = "r1"
|
||||||
|
for f in valid_events:
|
||||||
|
await create_event(relay_id, f.data)
|
||||||
|
|
||||||
|
# insert all events before doing an query
|
||||||
|
for f in valid_events:
|
||||||
|
event = await get_event(relay_id, f.data.id)
|
||||||
|
assert event, f"Failed to restore event (id='{f.data.id}')"
|
||||||
|
assert event.json() != json.dumps(f.data.json()), f"Restored event is different for fixture '{f.name}'"
|
||||||
|
|
||||||
|
filter = NostrFilter(ids=[f.data.id])
|
||||||
|
events = await get_events(relay_id, filter)
|
||||||
|
assert len(events) == 1, f"Expected one filter event '{f.name}'"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_fixtures(file):
|
def get_fixtures(file):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue