This commit is contained in:
2026-05-23 21:31:34 +02:00
parent 51b5ddc6f2
commit 641bb10479
6155 changed files with 3775717 additions and 291 deletions

View File

@@ -10,8 +10,10 @@ from pathlib import Path
from unittest.mock import patch
from aza_ai_budget import (
_norm_model,
compute_budget_snapshot,
ensure_ai_budget_schema,
estimate_openai_cost_usd,
insert_usage_event,
resolve_license_for_empfang,
sum_usage_usd_for_period,
@@ -67,6 +69,57 @@ def _mk_db(path: Path) -> None:
con.close()
class TestModelNormalizationAndBudgetDefault(unittest.TestCase):
def test_norm_dated_gpt_4o_mini(self):
self.assertEqual(_norm_model("gpt-4o-mini-2024-07-18"), "gpt-4o-mini")
def test_dated_gpt_4o_mini_uses_cheap_price(self):
cost = estimate_openai_cost_usd(
model="gpt-4o-mini-2024-07-18",
input_tokens=1_000_000,
output_tokens=0,
)
self.assertAlmostEqual(cost, 0.15, places=6)
self.assertEqual(
cost,
estimate_openai_cost_usd(
model="gpt-4o-mini", input_tokens=1_000_000, output_tokens=0
),
)
def test_gpt_4o_mini_transcribe_unchanged(self):
self.assertEqual(_norm_model("gpt-4o-mini-transcribe"), "gpt-4o-mini-transcribe")
cost = estimate_openai_cost_usd(
model="gpt-4o-mini-transcribe", audio_seconds=60.0
)
self.assertAlmostEqual(cost, 0.012, places=6)
def test_unknown_model_stays_conservative_fallback(self):
cost = estimate_openai_cost_usd(
model="totally-unknown-model-xyz",
input_tokens=1_000_000,
output_tokens=0,
)
self.assertAlmostEqual(cost, 5.0, places=6)
def test_env_overrides_budget_default(self):
import importlib
import aza_ai_budget as mod
key = "AZA_AI_BUDGET_USD_DEFAULT"
old = os.environ.get(key)
try:
os.environ[key] = "42.5"
importlib.reload(mod)
self.assertEqual(mod.DEFAULT_MONTHLY_AI_BUDGET_USD, 42.5)
finally:
if old is None:
os.environ.pop(key, None)
else:
os.environ[key] = old
importlib.reload(mod)
class TestBackendGatePracticeFallback(unittest.TestCase):
def setUp(self):
self.tmp = tempfile.NamedTemporaryFile(suffix=".sqlite", delete=False)