feat(kpi): expand KPI runtime monitoring, prompt advisory envelopes, and missing field resiliency

This commit is contained in:
operator
2026-10-06 20:02:48 +00:00
parent b824f6d405
commit ae4df2f29c
13 changed files with 1702 additions and 85 deletions
+25
View File
@@ -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()