From ad2fdbe0c1396e2b2561ed73a55249ce146799e8 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Wed, 1 Feb 2023 15:29:56 +0200 Subject: [PATCH] test: test event CRUD --- tests/test_events.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/tests/test_events.py b/tests/test_events.py index 8c612af..e09690b 100644 --- a/tests/test_events.py +++ b/tests/test_events.py @@ -5,7 +5,8 @@ import pytest from loguru import logger 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" @@ -26,20 +27,37 @@ def invalid_events() -> List[EventFixture]: 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: try: f.data.check_signature() 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 -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: with pytest.raises(ValueError, match=f.exception): 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): """