OffGridSchedula / tests /test_agent.py
ParetoOptimal's picture
Initial Commit
0366d65
Raw
History Blame Contribute Delete
1.08 kB
from datetime import datetime
from dateutil import parser as dtparser
from server.agent import run_agent, run_agent_stream
from server.schema import ActionPlan
def test_stream_yields_partials_then_plan():
steps = 0
final = None
for acc, plan in run_agent_stream("Alex: lunch 1pm tomorrow?"):
steps += 1
assert isinstance(acc, str)
if plan is not None:
final = plan
assert steps > 1 # streamed in chunks
assert isinstance(final, ActionPlan)
assert len(final.events) == 1
# start/end parse as ISO 8601
dtparser.isoparse(final.events[0].start)
dtparser.isoparse(final.events[0].end)
def test_no_time_thread_has_no_events():
plan = run_agent("lol that meme killed me")
assert isinstance(plan, ActionPlan)
assert plan.events == []
assert plan.reply_draft # still drafts a reply
def test_run_agent_marks_images():
# stub ignores image content but the path should not error
plan = run_agent("dinner 6pm", images=["data:image/png;base64,xx"])
assert isinstance(plan, ActionPlan)