feat: productize quota packages and recovery guidance
This commit is contained in:
@@ -787,27 +787,92 @@ class MainAgentGovernanceTests(unittest.TestCase):
|
||||
self.assertEqual(saved_registry["config"]["tone"], "sales")
|
||||
self.assertEqual(saved_registry["source"], "override")
|
||||
|
||||
growth_preset = {
|
||||
"monthly_budget_cents": 49900,
|
||||
"storage_limit_bytes": 21474836480,
|
||||
"analysis_quota": 160,
|
||||
"copy_quota": 320,
|
||||
"ai_video_quota": 12,
|
||||
"real_cut_quota": 8,
|
||||
"recorder_quota": 20,
|
||||
}
|
||||
quota_response = self.client.put(
|
||||
"/v2/tenant/quota",
|
||||
headers=self.ctx["member_headers"],
|
||||
params={"project_id": self.ctx["project_id"]},
|
||||
json={
|
||||
"enabled": True,
|
||||
"monthly_budget_cents": 12800,
|
||||
"storage_limit_bytes": 987654321,
|
||||
"analysis_quota": 21,
|
||||
"copy_quota": 13,
|
||||
"monthly_budget_cents": 1,
|
||||
"storage_limit_bytes": 2,
|
||||
"analysis_quota": 3,
|
||||
"copy_quota": 4,
|
||||
"ai_video_quota": 5,
|
||||
"real_cut_quota": 4,
|
||||
"recorder_quota": 9,
|
||||
"config": {"warn_threshold": 0.8},
|
||||
"real_cut_quota": 6,
|
||||
"recorder_quota": 7,
|
||||
"config": {"package_label": "growth", "warn_threshold": 0.8, "custom_note": "keep"},
|
||||
},
|
||||
)
|
||||
self.assertEqual(quota_response.status_code, 200, quota_response.text)
|
||||
quota_payload = quota_response.json()
|
||||
self.assertEqual(quota_payload["monthly_budget_cents"], 12800)
|
||||
self.assertEqual(quota_payload["analysis_quota"], 21)
|
||||
self.assertEqual(quota_payload["package_label"], "growth")
|
||||
self.assertEqual(quota_payload["monthly_budget_cents"], growth_preset["monthly_budget_cents"])
|
||||
self.assertEqual(quota_payload["storage_limit_bytes"], growth_preset["storage_limit_bytes"])
|
||||
self.assertEqual(quota_payload["analysis_quota"], growth_preset["analysis_quota"])
|
||||
self.assertEqual(quota_payload["copy_quota"], growth_preset["copy_quota"])
|
||||
self.assertEqual(quota_payload["ai_video_quota"], growth_preset["ai_video_quota"])
|
||||
self.assertEqual(quota_payload["real_cut_quota"], growth_preset["real_cut_quota"])
|
||||
self.assertEqual(quota_payload["recorder_quota"], growth_preset["recorder_quota"])
|
||||
self.assertEqual(quota_payload["config"]["package_label"], "growth")
|
||||
self.assertEqual(quota_payload["config"]["warn_threshold"], 0.8)
|
||||
self.assertEqual(quota_payload["config"]["package_title"], "增长套餐")
|
||||
self.assertTrue(quota_payload["config"]["package_is_preset"])
|
||||
self.assertEqual(quota_payload["config"]["custom_note"], "keep")
|
||||
|
||||
quota_get_response = self.client.get(
|
||||
"/v2/tenant/quota",
|
||||
headers=self.ctx["member_headers"],
|
||||
params={"project_id": self.ctx["project_id"]},
|
||||
)
|
||||
self.assertEqual(quota_get_response.status_code, 200, quota_get_response.text)
|
||||
quota_get_payload = quota_get_response.json()
|
||||
self.assertEqual(quota_get_payload["package_label"], "growth")
|
||||
self.assertEqual(quota_get_payload["monthly_budget_cents"], growth_preset["monthly_budget_cents"])
|
||||
self.assertEqual(quota_get_payload["config"]["package_label"], "growth")
|
||||
self.assertEqual(quota_get_payload["config"]["warn_threshold"], 0.8)
|
||||
self.assertEqual(quota_get_payload["config"]["package_title"], "增长套餐")
|
||||
|
||||
custom_response = self.client.put(
|
||||
"/v2/tenant/quota",
|
||||
headers=self.ctx["member_headers"],
|
||||
params={"project_id": self.ctx["project_id"]},
|
||||
json={
|
||||
"enabled": False,
|
||||
"monthly_budget_cents": 9100,
|
||||
"storage_limit_bytes": 111,
|
||||
"analysis_quota": 22,
|
||||
"copy_quota": 33,
|
||||
"ai_video_quota": 44,
|
||||
"real_cut_quota": 55,
|
||||
"recorder_quota": 66,
|
||||
"config": {"package_label": "custom", "warn_threshold": 0.55, "custom_note": "manual"},
|
||||
},
|
||||
)
|
||||
self.assertEqual(custom_response.status_code, 200, custom_response.text)
|
||||
custom_payload = custom_response.json()
|
||||
self.assertEqual(custom_payload["package_label"], "custom")
|
||||
self.assertEqual(custom_payload["monthly_budget_cents"], 9100)
|
||||
self.assertEqual(custom_payload["storage_limit_bytes"], 111)
|
||||
self.assertEqual(custom_payload["analysis_quota"], 22)
|
||||
self.assertEqual(custom_payload["copy_quota"], 33)
|
||||
self.assertEqual(custom_payload["ai_video_quota"], 44)
|
||||
self.assertEqual(custom_payload["real_cut_quota"], 55)
|
||||
self.assertEqual(custom_payload["recorder_quota"], 66)
|
||||
self.assertFalse(custom_payload["enabled"])
|
||||
self.assertEqual(custom_payload["config"]["package_label"], "custom")
|
||||
self.assertEqual(custom_payload["config"]["warn_threshold"], 0.55)
|
||||
self.assertEqual(custom_payload["config"]["package_title"], "自定义套餐")
|
||||
self.assertFalse(custom_payload["config"]["package_is_preset"])
|
||||
self.assertEqual(custom_payload["config"]["custom_note"], "manual")
|
||||
|
||||
usage_response = self.client.get(
|
||||
"/v2/tenant/usage",
|
||||
|
||||
Reference in New Issue
Block a user