Initial server source import
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import unittest
|
||||
from unittest import mock
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
APP_DIR = ROOT / "app"
|
||||
sys.path.insert(0, str(APP_DIR))
|
||||
|
||||
import keycheck_runner
|
||||
from keycheckers.gemini import geminiKeycheck as gemini
|
||||
from keycheckers.openai import Keycheck as openai
|
||||
from keycheckers.xai import xaiKeycheck as xai
|
||||
|
||||
|
||||
class ModelProbePreferenceTests(unittest.TestCase):
|
||||
def test_gemini_prefers_current_pro_then_current_flash(self):
|
||||
models = ["gemini-2.5-flash", "gemini-3.7-flash", "gemini-3.1-pro-preview"]
|
||||
self.assertEqual(gemini.choose_probe_model(models), "gemini-3.1-pro-preview")
|
||||
self.assertEqual(
|
||||
gemini.choose_probe_model(["gemini-2.5-flash", "gemini-3.7-flash"]),
|
||||
"gemini-3.7-flash",
|
||||
)
|
||||
self.assertEqual(gemini.choose_probe_model(["gemini-4-preview"]), "gemini-4-preview")
|
||||
|
||||
def test_xai_prefers_grok_4_6_and_falls_back_to_advertised_model(self):
|
||||
self.assertEqual(xai.choose_chat_model(["grok-4.5", "grok-4.6"]), "grok-4.6")
|
||||
self.assertEqual(
|
||||
xai.choose_chat_model(["grok-4.20-0309-non-reasoning", "grok-4.5"]),
|
||||
"grok-4.5",
|
||||
)
|
||||
|
||||
def test_openai_prefers_advertised_gpt_5_6_sol(self):
|
||||
models = ["gpt-5", "gpt-5.6-terra", "gpt-5.6-sol", "o3-pro"]
|
||||
self.assertEqual(openai.choose_probe_model(models), "gpt-5.6-sol")
|
||||
self.assertEqual(openai.choose_probe_model(["gpt-5", "o3-pro"]), "gpt-5")
|
||||
self.assertEqual(openai.choose_probe_model(["gpt-4o", "text-embedding-3-large"]), "gpt-4o")
|
||||
self.assertEqual(
|
||||
openai.reportable_target_models(models),
|
||||
{"gpt-5", "gpt-5.6-terra", "gpt-5.6-sol", "o3-pro"},
|
||||
)
|
||||
|
||||
def test_openai_probe_uses_supported_completion_budget(self):
|
||||
response = mock.Mock(status_code=200, text='{"choices":[{}]}')
|
||||
response.json.return_value = {"choices": [{}], "service_tier": "default"}
|
||||
with mock.patch.object(openai.requests, "post", return_value=response) as request:
|
||||
status, tier = openai.check_balance_and_tier("fixture-key", "gpt-5.6-sol", None)
|
||||
|
||||
self.assertEqual((status, tier), ("ok", "default"))
|
||||
payload = request.call_args.kwargs["json"]
|
||||
self.assertEqual(payload["model"], "gpt-5.6-sol")
|
||||
self.assertEqual(payload["max_completion_tokens"], 16)
|
||||
self.assertNotIn("max_tokens", payload)
|
||||
|
||||
def test_postgres_projection_detail_includes_probe_and_inventory(self):
|
||||
detail = keycheck_runner.postgres_status_projection_detail({
|
||||
"message": "accepted",
|
||||
"llm_probe_model": "gpt-5.6-sol",
|
||||
"llm_probe_status": "GENERATION_OK",
|
||||
"model_count": 3,
|
||||
"model_inventory": ["gpt-5.6-sol", "gpt-5", "o3-pro"],
|
||||
})
|
||||
self.assertEqual(
|
||||
detail,
|
||||
"accepted; probe_model=gpt-5.6-sol; probe_status=GENERATION_OK; "
|
||||
"model_count=3; models=gpt-5.6-sol,gpt-5,o3-pro",
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user