File size: 1,516 Bytes
bd67155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()