Merge pull request #162 from openqj/feat-task-result-full
feat(tasks): 完整结果另存 result_text_full,详情不再只剩 2000 字
This commit is contained in:
4 files changed
+107
-22
No files matched your search
@@ -546,6 +546,21 @@ class TestUsageParsing(unittest.TestCase):
|
||||
self.assertEqual(result["usage"], usage)
|
||||
self.assertEqual(result["status"], "completed")
|
||||
|
||||
def test_result_from_runner_keeps_stdout_full(self):
|
||||
# #165 后 stdout 是解析出的 text 截到 20000 字(不再是
|
||||
# 2000 字截 JSON),stdout_full 仍必须带完整文本,
|
||||
# 否则超 20000 字的长答案尾部在库里永远查不到。
|
||||
fake = SimpleNamespace(
|
||||
returncode=0,
|
||||
stdout=json.dumps({"status": "completed",
|
||||
"text": "y" * 5000}),
|
||||
stderr="")
|
||||
result = LocalExecutor("/fake/host.py",
|
||||
runner=lambda cmd: fake
|
||||
)._result_from_runner("t1", fake)
|
||||
self.assertLessEqual(len(result["stdout"]), 21000)
|
||||
self.assertIn("y" * 5000, result["stdout_full"])
|
||||
|
||||
def test_result_from_runner_usage_survives_long_text(self):
|
||||
# usage 在 JSON 末尾:旧的截头解析在 text 很长时会丢 usage、
|
||||
# 还会把 failed 误判成 completed;解析必须用完整 stdout。
|
||||
|
||||
Reference in new issue
Block a user