from __future__ import annotations import pytest from yuxi.channels.adapters.wechat import __all__ as wechat_all class TestWeChatModuleInit: def test_module_exports_basic_components(self): assert "WeChatAdapter" in wechat_all or "WECHAT_META" in wechat_all def test_module_can_be_imported(self): import yuxi.channels.adapters.wechat as wechat assert wechat is not None def test_errors_module_imports(self): from yuxi.channels.adapters.wechat.errors import ( is_token_expired, parse_mp_error, parse_wecom_error, ) assert callable(is_token_expired) assert callable(parse_mp_error) assert callable(parse_wecom_error) def test_session_module_imports(self): from yuxi.channels.adapters.wechat.session import ( build_session_route, get_session_metadata, ) assert callable(build_session_route) assert callable(get_session_metadata) def test_crypto_modules_import(self): from yuxi.channels.adapters.wechat.mp.crypto import verify_signature as mp_verify from yuxi.channels.adapters.wechat.wecom.crypto import verify_signature as wc_verify assert callable(mp_verify) assert callable(wc_verify) def test_send_modules_import(self): from yuxi.channels.adapters.wechat.wecom.send import build_wecom_text_payload from yuxi.channels.adapters.wechat.mp.send import build_mp_news_payload assert callable(build_wecom_text_payload) assert callable(build_mp_news_payload) def test_client_modules_import(self): from yuxi.channels.adapters.wechat.mp.client import MPClient from yuxi.channels.adapters.wechat.wecom.client import WeComClient assert MPClient is not None assert WeComClient is not None