type: 收窄测试与响应模型类型

This commit is contained in:
yml2213
2026-08-30 20:21:14 +08:00
parent 3f97dbe525
commit cbd314f4e5
7 changed files with 96 additions and 69 deletions
+10 -8
View File
@@ -1,5 +1,6 @@
from types import SimpleNamespace
from unittest.mock import Mock
from typing import Any, cast
from core.douyu.login import DouyuLogin
from core.douyu.login_api_wgapi import WgapiLoginAPI
@@ -9,13 +10,14 @@ class TestMobileBindSkip:
def setup_method(self):
self.login = DouyuLogin.__new__(DouyuLogin)
self.login.api = WgapiLoginAPI()
self.login.account = SimpleNamespace(
username="test-user", password="test-password"
self.login.account = cast(
Any, SimpleNamespace(username="test-user", password="test-password")
)
self.login._request_json = Mock()
self.request_json = Mock()
self.login.__dict__["_request_json"] = self.request_json
def test_second_login_skips_mobile_bind_with_unique_key(self):
self.login._request_json.side_effect = [
self.request_json.side_effect = [
{
"error": 130014,
"msg": "需要进行手机号绑定",
@@ -41,8 +43,8 @@ class TestMobileBindSkip:
assert (
login_url == "https://www.douyu.com/api/passport/login?code=callback-code"
)
assert self.login._request_json.call_count == 2
skip_call = self.login._request_json.call_args_list[1]
assert self.request_json.call_count == 2
skip_call = self.request_json.call_args_list[1]
assert skip_call.args[:3] == (
"post",
"https://passport.douyu.com/wgapi/member/passport/login",
@@ -55,7 +57,7 @@ class TestMobileBindSkip:
}
def test_second_login_preserves_remote_email_flow_without_unique_key(self):
self.login._request_json.return_value = {
self.request_json.return_value = {
"error": 130014,
"data": {"remoteLogin": {"code": "remote-code"}},
}
@@ -69,4 +71,4 @@ class TestMobileBindSkip:
)
assert (next_step, remote_code) == ("remote_email", "remote-code")
assert self.login._request_json.call_count == 1
assert self.request_json.call_count == 1