from __future__ import annotations import unittest from support_ops_env.env import SupportOpsEnv from support_ops_env.models import Action class SupportOpsEnvTest(unittest.TestCase): def test_easy_task_can_score_perfectly(self) -> None: env = SupportOpsEnv("easy_account_takeover") env.reset() env.step(Action(action_type="request_context", target="T1", value="account_security")) env.step(Action(action_type="request_context", target="T1", value="billing_activity")) env.step(Action(action_type="set_priority", target="T1", value="urgent")) env.step(Action(action_type="set_route", target="T1", value="account_security")) env.step( Action( action_type="set_resolution", target="T1", value="temporary_lock_and_manual_recovery", ) ) _, _, done, info = env.step( Action(action_type="escalate", target="T1", value="security_specialist") ) self.assertFalse(done) _, _, done, info = env.step(Action(action_type="finalize")) self.assertTrue(done) self.assertAlmostEqual(info["task_score"], 1.0, places=4) def test_hard_queue_ranking_is_scored(self) -> None: env = SupportOpsEnv("hard_queue_triage") env.reset() _, _, _, info = env.step(Action(action_type="rank_queue", value="T2,T3,T1")) self.assertGreater(info["task_score"], 0.0) if __name__ == "__main__": unittest.main()