feat(kpi): expand KPI runtime monitoring, prompt advisory envelopes, and missing field resiliency
This commit is contained in:
@@ -104,7 +104,32 @@ class TestSettingsRPAPrimitives(unittest.TestCase):
|
||||
self.assertEqual(usage.extra_percent_used, 0)
|
||||
self.assertFalse(usage.is_blocked)
|
||||
self.assertFalse(usage.has_redeemed)
|
||||
self.assertTrue(usage.stats_loaded)
|
||||
|
||||
@patch("settings_rpa.get_cdp_ws")
|
||||
@patch("settings_rpa.cdp_evaluate")
|
||||
def test_read_usage_stats_did_not_render(self, mock_eval, mock_ws):
|
||||
mock_ws.return_value = (MagicMock(), MagicMock())
|
||||
|
||||
def eval_side_effect(ws, js, *args, **kwargs):
|
||||
if "role=\"dialog\"" in js and "Weekly limit" in js:
|
||||
return None
|
||||
return True
|
||||
|
||||
mock_eval.side_effect = eval_side_effect
|
||||
|
||||
with SettingsRPA("646", timeout=0.5) as rpa:
|
||||
# Shorten deadline by patching time.time or passing small timeout
|
||||
with patch("time.sleep", return_value=None):
|
||||
usage = rpa.read_usage(keep_dialog_open=True)
|
||||
self.assertEqual(usage.node, "646")
|
||||
self.assertFalse(usage.stats_loaded)
|
||||
self.assertFalse(usage.is_blocked)
|
||||
self.assertIn("Unavailable", usage.weekly_reset_text)
|
||||
self.assertEqual(usage.extra_tokens_remaining, "Unavailable")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user