Files
manual_slop/tests/test_event_serialization.py
T

39 lines
1.1 KiB
Python

import json
from pathlib import Path
from src.events import UserRequestEvent
def test_user_request_event_serialization():
# Setup payload with nested Path objects
file_items = [
{"path": Path("some/file.txt"), "mtime": 1234.5},
{"path": Path("another/path"), "metadata": {"sub_path": Path("sub/path")}}
]
base_dir = Path("C:/projects/test")
event = UserRequestEvent(
prompt="Test prompt",
stable_md="# Context",
file_items=file_items,
disc_text="Discussion history",
base_dir=str(base_dir)
)
# Execute serialization
result = event.to_dict()
# Verify no Path objects remain
assert isinstance(result["file_items"][0]["path"], str)
assert result["file_items"][0]["path"] == str(Path("some/file.txt"))
assert isinstance(result["file_items"][1]["metadata"]["sub_path"], str)
assert result["file_items"][1]["metadata"]["sub_path"] == str(Path("sub/path"))
# Verify JSON serializability
try:
json.dumps(result)
except (TypeError, OverflowError) as e:
assert False, f"Result not JSON serializable: {e}"
if __name__ == "__main__":
test_user_request_event_serialization()
print("Test passed!")