Initialize crypto_monitor_user (user edition) from monitor codebase.
Retarget git remote, install path, and deploy docs from crypto_monitor to crypto_monitor_user. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
"""ai_client message parsing / empty-content retries."""
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest import mock
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from lib.ai.ai_client import _openai_message_text, ai_review # noqa: E402
|
||||
|
||||
|
||||
class TestOpenaiMessageText(unittest.TestCase):
|
||||
def test_prefers_content(self):
|
||||
self.assertEqual(
|
||||
_openai_message_text({"content": "正文", "reasoning": "think"}),
|
||||
"正文",
|
||||
)
|
||||
|
||||
def test_falls_back_to_reasoning_content(self):
|
||||
self.assertEqual(
|
||||
_openai_message_text({"content": "", "reasoning_content": "备选正文"}),
|
||||
"备选正文",
|
||||
)
|
||||
|
||||
def test_skips_english_chain_of_thought(self):
|
||||
self.assertEqual(
|
||||
_openai_message_text(
|
||||
{
|
||||
"content": "",
|
||||
"reasoning": "Here's a thinking process that leads to the answer...",
|
||||
}
|
||||
),
|
||||
"",
|
||||
)
|
||||
|
||||
|
||||
class TestAiReviewImageCap(unittest.TestCase):
|
||||
def test_caps_images_and_sets_max_tokens(self):
|
||||
captured = {}
|
||||
|
||||
def fake_generate(prompt, **kwargs):
|
||||
captured["prompt"] = prompt
|
||||
captured.update(kwargs)
|
||||
return "OK_REVIEW"
|
||||
|
||||
with mock.patch("lib.ai.ai_client.ai_generate", side_effect=fake_generate):
|
||||
with mock.patch.dict("os.environ", {"AI_REVIEW_MAX_IMAGES": "2"}, clear=False):
|
||||
out = ai_review("记录", "每日", image_paths=["a.png", "b.png", "c.png"])
|
||||
self.assertIn("OK_REVIEW", out)
|
||||
self.assertEqual(captured.get("image_paths"), ["a.png", "b.png"])
|
||||
self.assertEqual(captured.get("max_tokens"), 8192)
|
||||
self.assertIn("另跳过 1 张", out)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user