mirror of
https://github.com/aljazceru/python-nostr.git
synced 2025-12-18 14:54:23 +01:00
Integrate Event and RelayManager w/validity checking (#30)
This commit is contained in:
30
test/test_relay_manager.py
Normal file
30
test/test_relay_manager.py
Normal file
@@ -0,0 +1,30 @@
|
||||
import pytest
|
||||
from nostr.event import Event
|
||||
from nostr.key import PrivateKey
|
||||
from nostr.relay_manager import RelayManager, RelayException
|
||||
|
||||
|
||||
def test_only_relay_valid_events():
|
||||
""" publish_event raise a RelayException if an Event fails verification """
|
||||
pk = PrivateKey()
|
||||
event = Event(
|
||||
public_key=pk.public_key.hex(),
|
||||
content="Hello, world!",
|
||||
)
|
||||
|
||||
relay_manager = RelayManager()
|
||||
|
||||
# Deliberately forget to sign the Event
|
||||
with pytest.raises(RelayException) as e:
|
||||
relay_manager.publish_event(event)
|
||||
assert "must be signed" in str(e)
|
||||
|
||||
# Attempt to relay with a nonsense signature
|
||||
event.signature = '0' * 32
|
||||
with pytest.raises(RelayException) as e:
|
||||
relay_manager.publish_event(event)
|
||||
assert "failed to verify" in str(e)
|
||||
|
||||
# Properly signed Event can be relayed
|
||||
event.sign(pk.hex())
|
||||
relay_manager.publish_event(event)
|
||||
Reference in New Issue
Block a user