This commit is contained in:
2026-06-16 05:32:33 +02:00
parent 97fba83d91
commit df34278d88
27 changed files with 375 additions and 100 deletions
+16 -2
View File
@@ -26,6 +26,18 @@ def _seed_ledger(owner_kind, owner_id, cost, n=1):
"cost_usd": cost,
}
)
def _seed_gateway_spend(owner_id, cost, n=1, owner_kind="user"):
table = get_table("gateway_usage_ledger")
for _ in range(n):
table.insert(
{
"owner_kind": owner_kind,
"owner_id": owner_id,
"created_at": _now_iso_devii_quota(),
"success": 1,
"cost_usd": cost,
}
)
def _ensure_devii():
from devplacepy.services.manager import service_manager
from devplacepy.services.devii import DeviiService
@@ -70,11 +82,13 @@ def test_admin_exempt_by_default(local_db):
set_setting("devii_admin_daily_usd", "0.0")
try:
uid, _ = _make_user_devii_quota()
_seed_ledger("user", uid, 5.0)
_seed_gateway_spend(uid, 5.0)
member_view = _ai_quota(uid, is_admin=False)
admin_view = _ai_quota(uid, is_admin=True)
assert member_view["used_pct"] == 100.0
assert member_view["unlimited"] is False
assert admin_view["used_pct"] == 0.0
assert admin_view["unlimited"] is True
finally:
set_setting("devii_user_daily_usd", "1.0")
set_setting("devii_admin_daily_usd", "0.0")
@@ -97,7 +111,7 @@ def test_admin_cap_configurable(local_db):
set_setting("devii_admin_daily_usd", "2.0")
try:
uid, _ = _make_user_devii_quota()
_seed_ledger("user", uid, 1.0)
_seed_gateway_spend(uid, 1.0)
quota = _ai_quota(uid, is_admin=True)
assert quota["used_pct"] == 50.0
finally:
@@ -148,6 +148,7 @@ def test_ai_quota_percentage_and_clamp(local_db):
set_setting("devii_user_daily_usd", "2.0")
try:
half, _, _ = _make_user_ai_usage_profile()
_seed_gateway(half, n=2, cost=0.5)
get_table("devii_usage_ledger").insert(
{
"owner_kind": "user",
@@ -159,18 +160,11 @@ def test_ai_quota_percentage_and_clamp(local_db):
quota = _ai_quota(half)
assert quota is not None
assert quota["used_pct"] == 50.0
assert quota["requests"] == 2
assert quota["turns"] == 1
over, _, _ = _make_user_ai_usage_profile()
for _ in range(3):
get_table("devii_usage_ledger").insert(
{
"owner_kind": "user",
"owner_id": over,
"created_at": _now_iso_ai_usage_profile(),
"cost_usd": 1.0,
}
)
_seed_gateway(over, n=3, cost=1.0)
capped = _ai_quota(over)
assert capped["used_pct"] == 100.0
finally: