| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- from __future__ import annotations
- import acquisition.classification.coarse as coarse
- import acquisition.classify as legacy_classify
- from core.config import PgConfig, Settings
- def _settings() -> Settings:
- return Settings(
- pg=PgConfig(host="h", port=5432, user="u", password="p", database="d"),
- aiddit_crawler_base_url="http://crawler.test",
- crawler_timeout=30,
- openrouter_timeout_seconds=90,
- openrouter_model="m",
- openrouter_base_url="http://openrouter.test",
- openrouter_api_key="k",
- llm_model="m",
- max_cards=12,
- frames_dir="f",
- douyin_ratio="540p",
- data_dir="data",
- )
- def test_formal_classify_imgtext_passes_http_image_urls(monkeypatch):
- captured = {}
- def fake_judge(messages, settings, timeout):
- captured["messages"] = messages
- return 1, "ok", "先定受众", ""
- monkeypatch.setattr(coarse, "_judge", fake_judge)
- result = coarse.classify_imgtext(
- {
- "platform": "xiaohongshu",
- "title": "脚本创作",
- "body_text": "讲怎么设计开头",
- "images": ["https://cdn.test/a.jpg"],
- },
- _settings(),
- )
- assert result[0] == 1
- user_content = captured["messages"][1]["content"]
- assert {"type": "image_url", "image_url": {"url": "https://cdn.test/a.jpg"}} in user_content
- def test_legacy_classify_imgtext_also_passes_http_image_urls(monkeypatch):
- captured = {}
- def fake_judge(messages, settings, timeout):
- captured["messages"] = messages
- return 1, "ok", "先定受众", ""
- monkeypatch.setattr(legacy_classify, "_judge", fake_judge)
- result = legacy_classify.classify_imgtext(
- {
- "platform": "weixin",
- "title": "公众号选题",
- "body_text": "讲怎么做标题",
- "images": ["https://cdn.test/w.jpg"],
- },
- _settings(),
- )
- assert result[0] == 1
- user_content = captured["messages"][1]["content"]
- assert {"type": "image_url", "image_url": {"url": "https://cdn.test/w.jpg"}} in user_content
- def test_coarse_classify_item_maps_judge_result(monkeypatch):
- monkeypatch.setattr(
- coarse,
- "classify_imgtext",
- lambda payload, settings: (0, "不是创作知识", "", ""),
- )
- result = coarse.coarse_classify_item(
- platform="weixin",
- title="普通知识",
- body_text="只是作品介绍",
- image_urls=["https://cdn.test/a.jpg"],
- settings=_settings(),
- )
- assert result.is_creation_knowledge is False
- assert result.label == "not_creation"
- assert result.status == "classified"
|