import sys
import unittest
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "src"))
from wechat_decrypt_tool.chat_helpers import _parse_app_message
class TestChatOfficialArticleCoverStyle(unittest.TestCase):
def test_mp_weixin_feed_url_is_cover_style(self):
raw_text = (
""
""
"时尚穿搭:「这样的jk你喜欢吗」"
"这样的jk你喜欢吗?"
"5"
""
"http://mp.weixin.qq.com/s?__biz=MzkxOTY4MjIxOA==&mid=2247508015&idx=1&sn=931dce677c6e70b4365792b14e7e8ff0"
"&exptype=masonry_feed_brief_content_elite_for_pcfeeds_u2i&ranksessionid=1770868256_1&req_id=1770867949535989#rd"
""
"https://mmbiz.qpic.cn/sz_mmbiz_jpg/foo/640?wx_fmt=jpeg&wxfrom=401"
"甜图社"
"gh_abc123"
""
""
)
parsed = _parse_app_message(raw_text)
self.assertEqual(parsed.get("renderType"), "link")
self.assertEqual(parsed.get("linkType"), "official_article")
self.assertEqual(parsed.get("linkStyle"), "cover")
def test_mp_weixin_non_feed_url_keeps_default_style(self):
raw_text = (
""
""
"普通分享"
"这样的jk你喜欢吗?"
"5"
"http://mp.weixin.qq.com/s?__biz=foo&mid=1&idx=1&sn=bar#rd"
"甜图社"
"gh_abc123"
""
""
)
parsed = _parse_app_message(raw_text)
self.assertEqual(parsed.get("renderType"), "link")
self.assertEqual(parsed.get("linkType"), "official_article")
self.assertEqual(parsed.get("linkStyle"), "default")
if __name__ == "__main__":
unittest.main()