feat: add generate progress and readable logs

This commit is contained in:
chengma
2026-07-02 14:02:53 +08:00
parent 4c7d4fc624
commit f9c6dd3331
7 changed files with 337 additions and 34 deletions
+11
View File
@@ -99,6 +99,7 @@ class AITests(TempDirMixin, unittest.TestCase):
models_path = os.path.join(temp_dir, "ai_models.json")
self._write_models(models_path)
calls = []
steps = []
def fake_urlopen(request, timeout=None):
calls.append((request, timeout))
@@ -112,10 +113,18 @@ class AITests(TempDirMixin, unittest.TestCase):
"旧标题",
config=self._config(),
models_path=models_path,
on_step=steps.append,
)
self.assertEqual("新标题", title)
self.assertEqual(2, len(calls))
retry_events = [step for step in steps if isinstance(step, dict)]
self.assertEqual(1, len(retry_events))
self.assertEqual("title_request", retry_events[0]["step"])
self.assertEqual("retry", retry_events[0]["result"])
self.assertEqual(1, retry_events[0]["attempt"])
self.assertEqual(2, retry_events[0]["attempts"])
self.assertNotIn("sk-text-secret", retry_events[0]["detail"])
body = json.loads(calls[-1][0].data.decode("utf-8"))
self.assertEqual("text-model", body["model"])
self.assertEqual(0, body["temperature"])
@@ -143,6 +152,7 @@ class AITests(TempDirMixin, unittest.TestCase):
},
)
calls = []
steps = []
def fake_urlopen(request, timeout=None):
calls.append(request)
@@ -154,6 +164,7 @@ class AITests(TempDirMixin, unittest.TestCase):
"旧标题",
config=self._config(),
models_path=models_path,
on_step=steps.append,
)
self.assertEqual("新标题", title)