File size: 1,499 Bytes
1395b2e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | from support_triage_openenv.env import SupportTriageEnv
from support_triage_openenv.models import Action
def test_reset_and_state_cycle():
env = SupportTriageEnv()
obs = env.reset("easy_password_reset")
assert obs.task_id == "easy_password_reset"
assert obs.step_count == 0
state = env.state()
assert state["done"] is False
def test_easy_task_can_reach_high_score():
env = SupportTriageEnv()
env.reset("easy_password_reset")
env.step(Action(action_type="read_ticket", ticket_id="T-1001"))
env.step(
Action(
action_type="classify_ticket",
ticket_id="T-1001",
priority="medium",
category="account",
needs_escalation=False,
)
)
env.step(
Action(
action_type="draft_reply",
message=(
"We will send a reset link to your email. For security, please confirm the request "
"from your device after receiving the reset link."
),
)
)
_, reward, done, info = env.step(Action(action_type="resolve_ticket", ticket_id="T-1001"))
assert done is True
assert info["grader_score"] >= 0.9
assert reward.value >= 0.9
def test_invalid_ticket_penalty_and_done_guard():
env = SupportTriageEnv()
env.reset("medium_billing_dispute")
_, reward, _, info = env.step(Action(action_type="read_ticket", ticket_id="NOT-REAL"))
assert reward.value < 0.5
assert info["penalties"]
|