57 lines
2.2 KiB
Python
57 lines
2.2 KiB
Python
from nexus.evennia_event_adapter import actor_located, command_issued, command_result, room_snapshot, session_bound
|
|
from nexus.perception_adapter import ws_to_perception
|
|
|
|
|
|
def test_session_bound_schema():
|
|
event = session_bound("sess-1")
|
|
assert event["type"] == "evennia.session_bound"
|
|
assert event["hermes_session_id"] == "sess-1"
|
|
assert event["evennia_account"] == "Timmy"
|
|
|
|
|
|
def test_room_snapshot_schema():
|
|
event = room_snapshot(
|
|
room_key="Chapel",
|
|
title="Chapel",
|
|
desc="Quiet room.",
|
|
exits=[{"key": "courtyard", "destination_id": "Courtyard", "destination_key": "Courtyard"}],
|
|
objects=[{"id": "Book of the Soul", "key": "Book of the Soul", "short_desc": "A doctrinal anchor."}],
|
|
)
|
|
assert event["type"] == "evennia.room_snapshot"
|
|
assert event["title"] == "Chapel"
|
|
assert event["objects"][0]["key"] == "Book of the Soul"
|
|
|
|
|
|
def test_evennia_room_snapshot_becomes_perception():
|
|
perception = ws_to_perception(
|
|
room_snapshot(
|
|
room_key="Workshop",
|
|
title="Workshop",
|
|
desc="Tools everywhere.",
|
|
exits=[{"key": "courtyard", "destination_id": "Courtyard", "destination_key": "Courtyard"}],
|
|
objects=[{"id": "Workbench", "key": "Workbench", "short_desc": "A broad workbench."}],
|
|
)
|
|
)
|
|
assert perception is not None
|
|
assert "Workshop" in perception.description
|
|
assert "Workbench" in perception.description
|
|
|
|
|
|
def test_evennia_command_result_becomes_perception():
|
|
perception = ws_to_perception(command_result("sess-2", "Timmy", "look Book of the Soul", "Book of the Soul. A doctrinal anchor.", True))
|
|
assert perception is not None
|
|
assert "succeeded" in perception.description.lower()
|
|
assert "Book of the Soul" in perception.description
|
|
|
|
|
|
def test_evennia_actor_located_becomes_perception():
|
|
perception = ws_to_perception(actor_located("Timmy", "Gate"))
|
|
assert perception is not None
|
|
assert "Gate" in perception.description
|
|
|
|
|
|
def test_evennia_command_issued_schema():
|
|
event = command_issued("sess-3", "Timmy", "chapel")
|
|
assert event["type"] == "evennia.command_issued"
|
|
assert event["command_text"] == "chapel"
|