| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from unittest.mock import MagicMock, patch
- from app.services.wechat_mini_auth import WechatMiniAuthError, get_unlimited_wxacode
- def test_get_unlimited_wxacode_returns_png_bytes():
- token_resp = MagicMock()
- token_resp.raise_for_status = MagicMock()
- token_resp.json.return_value = {"access_token": "tok"}
- code_resp = MagicMock()
- code_resp.raise_for_status = MagicMock()
- code_resp.headers = {"Content-Type": "image/jpeg"}
- code_resp.content = b"\xff\xd8fake"
- with patch(
- "app.services.wechat_mini_auth._require_mini_credentials",
- return_value=("app", "sec"),
- ):
- with patch("app.services.wechat_mini_auth.httpx.Client") as Client:
- client = MagicMock()
- Client.return_value.__enter__.return_value = client
- client.get.return_value = token_resp
- client.post.return_value = code_resp
- raw = get_unlimited_wxacode(scene="abc", page="pages/login/web-qr/index")
- assert raw.startswith(b"\xff\xd8")
- def test_get_unlimited_wxacode_json_error():
- token_resp = MagicMock()
- token_resp.raise_for_status = MagicMock()
- token_resp.json.return_value = {"access_token": "tok"}
- code_resp = MagicMock()
- code_resp.raise_for_status = MagicMock()
- code_resp.headers = {"Content-Type": "application/json"}
- code_resp.content = b'{"errcode":40001,"errmsg":"fail"}'
- code_resp.json.return_value = {"errcode": 40001, "errmsg": "fail"}
- with patch(
- "app.services.wechat_mini_auth._require_mini_credentials",
- return_value=("app", "sec"),
- ):
- with patch("app.services.wechat_mini_auth.httpx.Client") as Client:
- client = MagicMock()
- Client.return_value.__enter__.return_value = client
- client.get.return_value = token_resp
- client.post.return_value = code_resp
- try:
- get_unlimited_wxacode(scene="abc", page="pages/login/web-qr/index")
- assert False, "expected error"
- except WechatMiniAuthError:
- pass
|