feat: complete T-530 cmhub URL normalization

This commit is contained in:
chengma
2026-07-06 10:31:36 +08:00
parent 42dd8a993f
commit b99019e954
14 changed files with 142 additions and 31 deletions
+22
View File
@@ -516,6 +516,28 @@ class AITests(TempDirMixin, unittest.TestCase):
self.assertEqual("https://cmhub.example.com/api/v1/models", calls[0][1])
self.assertEqual("title-standard", models[0]["alias"])
def test_fetch_cmhub_models_404_returns_clear_base_url_error(self):
calls = []
def fake_request(method, url, **kwargs):
calls.append((method, url, kwargs))
return _RequestsResponse({"detail": "notfound"}, status_code=404)
with mock.patch("app.ai.requests.request", side_effect=fake_request):
with self.assertRaises(ai.CMHubError) as raised:
ai.fetch_cmhub_models(
"https://cmhub.example.com/api/v1/",
"sk-cmhub-secret",
)
self.assertEqual("GET", calls[0][0])
self.assertEqual("https://cmhub.example.com/api/v1/models", calls[0][1])
self.assertEqual("not_found", raised.exception.code)
self.assertEqual(404, raised.exception.status)
message = str(raised.exception)
self.assertIn("cmhub 接口不存在", message)
self.assertIn("/api/v1/models", message)
self.assertNotIn("notfound", message)
def test_fetch_cmhub_balance_returns_points(self):
calls = []