chore: reorganize test files into domain-specific subdirectories
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from tests.conftest import BASE_URL
|
||||
|
||||
|
||||
def test_devii_adopt_redirects(page, app_server):
|
||||
resp = page.request.get(
|
||||
f"{BASE_URL}/devii/adopt?next=/feed", max_redirects=0
|
||||
)
|
||||
assert resp.status == 303
|
||||
assert resp.headers.get("location") == "/feed"
|
||||
|
||||
|
||||
def test_devii_adopt_rejects_external(page, app_server):
|
||||
resp = page.request.get(
|
||||
f"{BASE_URL}/devii/adopt?next=https://evil.com", max_redirects=0
|
||||
)
|
||||
assert resp.status == 303
|
||||
assert resp.headers.get("location") == "/"
|
||||
@@ -0,0 +1,11 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from tests.conftest import BASE_URL
|
||||
|
||||
|
||||
def test_devii_clippy_unavailable(alice):
|
||||
page, _ = alice
|
||||
resp = page.request.post(f"{BASE_URL}/devii/clippy/ai/chat", data="{}")
|
||||
assert resp.status == 503
|
||||
data = resp.json()
|
||||
assert "unavailable" in data.get("error", "").lower()
|
||||
@@ -0,0 +1,8 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from tests.conftest import BASE_URL
|
||||
|
||||
|
||||
def test_devii_page_loads(page, app_server):
|
||||
page.goto(f"{BASE_URL}/devii/", wait_until="domcontentloaded")
|
||||
assert "Devii" in page.title()
|
||||
@@ -0,0 +1,65 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from types import SimpleNamespace
|
||||
from tests.conftest import BASE_URL
|
||||
from devplacepy.database import get_table, set_setting
|
||||
from devplacepy.utils import generate_uid
|
||||
from devplacepy.services.devii.config import (
|
||||
effective_daily_limit,
|
||||
FIELD_USER_DAILY_USD,
|
||||
FIELD_GUEST_DAILY_USD,
|
||||
FIELD_ADMIN_DAILY_USD,
|
||||
)
|
||||
from devplacepy.services.devii.store import UsageLedger
|
||||
LEDGER = "devii_usage_ledger"
|
||||
def _now_iso_devii_quota():
|
||||
return datetime.now(timezone.utc).isoformat()
|
||||
def _seed_ledger(owner_kind, owner_id, cost, n=1):
|
||||
table = get_table(LEDGER)
|
||||
for _ in range(n):
|
||||
table.insert(
|
||||
{
|
||||
"owner_kind": owner_kind,
|
||||
"owner_id": owner_id,
|
||||
"created_at": _now_iso_devii_quota(),
|
||||
"cost_usd": cost,
|
||||
}
|
||||
)
|
||||
def _ensure_devii():
|
||||
from devplacepy.services.manager import service_manager
|
||||
from devplacepy.services.devii import DeviiService
|
||||
|
||||
if service_manager.get_service("devii") is None:
|
||||
service_manager.register(DeviiService())
|
||||
return service_manager.get_service("devii")
|
||||
def _make_user_devii_quota(role="Member"):
|
||||
uid = generate_uid()
|
||||
username = f"quota_{uid[-12:]}"
|
||||
get_table("users").insert(
|
||||
{
|
||||
"uid": uid,
|
||||
"username": username,
|
||||
"email": f"{username}@t.dev",
|
||||
"api_key": generate_uid(),
|
||||
"role": role,
|
||||
"is_active": True,
|
||||
}
|
||||
)
|
||||
return uid, username
|
||||
|
||||
|
||||
def test_admin_reset_user_quota_endpoint(alice):
|
||||
page, _ = alice
|
||||
bob = get_table("users").find_one(username="bob_test")
|
||||
get_table(LEDGER).insert(
|
||||
{
|
||||
"owner_kind": "user",
|
||||
"owner_id": bob["uid"],
|
||||
"created_at": _now_iso_devii_quota(),
|
||||
"cost_usd": 0.5,
|
||||
}
|
||||
)
|
||||
resp = page.request.post(f"{BASE_URL}/admin/users/{bob['uid']}/reset-ai-quota")
|
||||
assert resp.ok
|
||||
assert get_table(LEDGER).count(owner_kind="user", owner_id=bob["uid"]) == 0
|
||||
@@ -0,0 +1,22 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from tests.conftest import BASE_URL
|
||||
|
||||
|
||||
def test_devii_session_as_guest(page, app_server):
|
||||
resp = page.request.get(f"{BASE_URL}/devii/session")
|
||||
data = resp.json()
|
||||
assert data["loggedIn"] is False
|
||||
assert data["username"] == "guest"
|
||||
assert "enabled" in data
|
||||
assert "guestsEnabled" in data
|
||||
assert data["baseUrl"] == BASE_URL
|
||||
|
||||
|
||||
def test_devii_session_as_logged_in(alice):
|
||||
page, _ = alice
|
||||
resp = page.request.get(f"{BASE_URL}/devii/session")
|
||||
data = resp.json()
|
||||
assert data["loggedIn"] is True
|
||||
assert data["username"] == "alice_test"
|
||||
assert "enabled" in data
|
||||
@@ -0,0 +1,19 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from tests.conftest import BASE_URL
|
||||
|
||||
|
||||
def test_devii_usage_as_guest(page, app_server):
|
||||
resp = page.request.get(f"{BASE_URL}/devii/usage")
|
||||
data = resp.json()
|
||||
assert "used_pct" in data
|
||||
assert "turns_today" in data
|
||||
assert data["turns_today"] == 0
|
||||
|
||||
|
||||
def test_devii_usage_as_logged_in(alice):
|
||||
page, _ = alice
|
||||
resp = page.request.get(f"{BASE_URL}/devii/usage")
|
||||
data = resp.json()
|
||||
assert "used_pct" in data
|
||||
assert "turns_today" in data
|
||||
Reference in New Issue
Block a user