kiwi/tests/api/test_orch_usage.py
pyr0ball c18bfec8f5
Some checks are pending
CI / Backend (Python) (push) Waiting to run
CI / Frontend (Vue) (push) Waiting to run
Mirror / mirror (push) Waiting to run
fix(lint): add ruff config, fix all lint errors for GitHub CI
- pyproject.toml: add [tool.ruff] config suppressing E402/W293 globally,
  F841/E741/E702 in tests, E741 in scripts
- inventory.py: split semicolon import (E702)
- recipes.py: fix logger -> log (F821 undefined name)
- shopping.py: rename l -> lnk in list comprehension (E741)
- format_conversion.py: noqa F841 on CUDA flag (used as future hook)
- backfill_keywords.py: rename done -> _done (F841)
- ingest_purplecarrot.py: drop == True comparison (E712)
- Auto-fix: I001 import sorting, F401 unused imports across all files
2026-07-06 02:49:02 -07:00

56 lines
1.6 KiB
Python

"""Tests for the /orch-usage proxy endpoint."""
from __future__ import annotations
from pathlib import Path
from unittest.mock import patch
from fastapi.testclient import TestClient
from app.cloud_session import CloudUser, get_session
from app.main import app
def _make_session(license_key=None, tier="paid"):
return CloudUser(
user_id="user-1",
tier=tier,
db=Path("/tmp/kiwi_test.db"),
has_byok=False,
license_key=license_key,
)
def test_orch_usage_returns_data_for_lifetime_user():
"""GET /orch-usage with a lifetime key returns usage data."""
app.dependency_overrides[get_session] = lambda: _make_session(
license_key="CFG-KIWI-TEST-0000-0000"
)
client = TestClient(app)
with patch("app.api.endpoints.orch_usage.get_orch_usage") as mock_usage:
mock_usage.return_value = {
"calls_used": 10,
"topup_calls": 0,
"calls_total": 60,
"period_start": "2026-04-14",
"resets_on": "2026-05-14",
}
resp = client.get("/api/v1/orch-usage")
app.dependency_overrides.clear()
assert resp.status_code == 200
data = resp.json()
assert data["calls_used"] == 10
assert data["calls_total"] == 60
def test_orch_usage_returns_null_for_subscription_user():
"""GET /orch-usage with no license_key returns null."""
app.dependency_overrides[get_session] = lambda: _make_session(
license_key=None, tier="paid"
)
client = TestClient(app)
resp = client.get("/api/v1/orch-usage")
app.dependency_overrides.clear()
assert resp.status_code == 200
assert resp.json() is None