meta_hackathon / tests /test_env.py
afroimam's picture
Upload folder using huggingface_hub
1395b2e verified
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"]