Add personal notes, DeepSearch history, backup offload, and gateway auth throttling
DevPlace CI / test (push) Failing after 28m20s
DevPlace CI / test (push) Failing after 28m20s
Also streamline the top navigation: drop the Tools dropdown, make Quizzes and Battles icon-only entries, and remove the Workspace, Containers and Editor entry points from the project detail page.
This commit is contained in:
@@ -190,3 +190,87 @@ def test_cli_reset_quota_all(local_db):
|
||||
_seed_ledger("user", user_id, 0.5, n=1)
|
||||
cmd_devii_reset_quota(SimpleNamespace(username=None, guests=False, all=True))
|
||||
assert get_table(LEDGER).count() == 0
|
||||
|
||||
|
||||
def _quota_warnings(uid):
|
||||
from devplacepy.services.devii.service import QUOTA_WARNING_NOTIFICATION_TYPE
|
||||
|
||||
return list(
|
||||
get_table("notifications").find(
|
||||
user_uid=uid, type=QUOTA_WARNING_NOTIFICATION_TYPE
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def test_quota_warning_fires_once_past_80_percent(local_db):
|
||||
svc = _ensure_devii()
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
try:
|
||||
uid, _ = _make_user_devii_quota()
|
||||
_seed_ledger("user", uid, 0.85)
|
||||
svc.maybe_warn_quota_threshold("user", uid, False)
|
||||
assert len(_quota_warnings(uid)) == 1
|
||||
finally:
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
|
||||
|
||||
def test_quota_warning_not_refired_within_same_window(local_db):
|
||||
svc = _ensure_devii()
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
try:
|
||||
uid, _ = _make_user_devii_quota()
|
||||
_seed_ledger("user", uid, 0.85)
|
||||
svc.maybe_warn_quota_threshold("user", uid, False)
|
||||
_seed_ledger("user", uid, 0.05)
|
||||
svc.maybe_warn_quota_threshold("user", uid, False)
|
||||
assert len(_quota_warnings(uid)) == 1
|
||||
finally:
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
|
||||
|
||||
def test_quota_warning_skips_below_threshold(local_db):
|
||||
svc = _ensure_devii()
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
try:
|
||||
uid, _ = _make_user_devii_quota()
|
||||
_seed_ledger("user", uid, 0.5)
|
||||
svc.maybe_warn_quota_threshold("user", uid, False)
|
||||
assert _quota_warnings(uid) == []
|
||||
finally:
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
|
||||
|
||||
def test_quota_warning_skips_admin(local_db):
|
||||
svc = _ensure_devii()
|
||||
set_setting("devii_admin_daily_usd", "1.0")
|
||||
try:
|
||||
uid, _ = _make_user_devii_quota(role="Admin")
|
||||
_seed_ledger("user", uid, 0.95)
|
||||
svc.maybe_warn_quota_threshold("user", uid, True)
|
||||
assert _quota_warnings(uid) == []
|
||||
finally:
|
||||
set_setting("devii_admin_daily_usd", "0.0")
|
||||
|
||||
|
||||
def test_quota_warning_skips_unlimited_cap(local_db):
|
||||
svc = _ensure_devii()
|
||||
set_setting("devii_user_daily_usd", "0")
|
||||
try:
|
||||
uid, _ = _make_user_devii_quota()
|
||||
_seed_ledger("user", uid, 50.0)
|
||||
svc.maybe_warn_quota_threshold("user", uid, False)
|
||||
assert _quota_warnings(uid) == []
|
||||
finally:
|
||||
set_setting("devii_user_daily_usd", "1.0")
|
||||
|
||||
|
||||
def test_quota_warning_skips_guests(local_db):
|
||||
svc = _ensure_devii()
|
||||
set_setting("devii_guest_daily_usd", "0.10")
|
||||
try:
|
||||
guest_id = f"guest-{generate_uid()[:8]}"
|
||||
_seed_ledger("guest", guest_id, 0.09)
|
||||
svc.maybe_warn_quota_threshold("guest", guest_id, False)
|
||||
assert get_table("notifications").find_one(user_uid=guest_id) is None
|
||||
finally:
|
||||
set_setting("devii_guest_daily_usd", "0.05")
|
||||
|
||||
Reference in New Issue
Block a user