mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-04 02:26:11 +08:00
🐛 优化对 weibo get_cookie_name 的 mock
This commit is contained in:
parent
641cc44a12
commit
3a0f95b712
@ -1,12 +1,12 @@
|
|||||||
import json
|
import json
|
||||||
from typing import cast
|
from typing import cast
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from unittest.mock import patch
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from nonebug import App
|
from nonebug import App
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("_patch_weibo_get_cookie_name")
|
||||||
async def test_cookie(app: App, init_scheduler):
|
async def test_cookie(app: App, init_scheduler):
|
||||||
from nonebot_plugin_saa import TargetQQGroup
|
from nonebot_plugin_saa import TargetQQGroup
|
||||||
|
|
||||||
@ -34,8 +34,6 @@ async def test_cookie(app: App, init_scheduler):
|
|||||||
|
|
||||||
cookies = await config.get_cookie(site_name=site.name)
|
cookies = await config.get_cookie(site_name=site.name)
|
||||||
assert len(cookies) == 1
|
assert len(cookies) == 1
|
||||||
with patch("nonebot_bison.platform.weibo.WeiboSite._get_current_user_name") as mock:
|
|
||||||
mock.return_value = "test_name"
|
|
||||||
# 添加用户cookie
|
# 添加用户cookie
|
||||||
await client_mgr.add_user_cookie(json.dumps({"test_cookie": "1"}))
|
await client_mgr.add_user_cookie(json.dumps({"test_cookie": "1"}))
|
||||||
await client_mgr.add_user_cookie(json.dumps({"test_cookie": "2"}))
|
await client_mgr.add_user_cookie(json.dumps({"test_cookie": "2"}))
|
||||||
@ -70,8 +68,6 @@ async def test_cookie(app: App, init_scheduler):
|
|||||||
tags=[],
|
tags=[],
|
||||||
)
|
)
|
||||||
|
|
||||||
with patch("nonebot_bison.platform.weibo.WeiboSite._get_current_user_name") as mock:
|
|
||||||
mock.return_value = "test_name"
|
|
||||||
await client_mgr.add_user_cookie(json.dumps({"test_cookie": "3"}))
|
await client_mgr.add_user_cookie(json.dumps({"test_cookie": "3"}))
|
||||||
cookies = await config.get_cookie(site_name=site.name, is_anonymous=False)
|
cookies = await config.get_cookie(site_name=site.name, is_anonymous=False)
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ def load_adapters(nonebug_init: None):
|
|||||||
return driver
|
return driver
|
||||||
|
|
||||||
|
|
||||||
def _patch_refresh_bilibili_anonymous_cookie(mocker: MockerFixture):
|
def patch_refresh_bilibili_anonymous_cookie(mocker: MockerFixture):
|
||||||
# patch 掉bilibili的匿名cookie生成函数,避免真实请求
|
# patch 掉bilibili的匿名cookie生成函数,避免真实请求
|
||||||
|
|
||||||
from nonebot_bison.platform.bilibili.scheduler import BilibiliClientManager
|
from nonebot_bison.platform.bilibili.scheduler import BilibiliClientManager
|
||||||
@ -63,7 +63,7 @@ async def app(tmp_path: Path, request: pytest.FixtureRequest, mocker: MockerFixt
|
|||||||
|
|
||||||
# 如果在 app 前调用会报错“无法找到调用者”
|
# 如果在 app 前调用会报错“无法找到调用者”
|
||||||
# 而在后面调用又来不及mock,所以只能在中间mock
|
# 而在后面调用又来不及mock,所以只能在中间mock
|
||||||
_patch_refresh_bilibili_anonymous_cookie(mocker)
|
patch_refresh_bilibili_anonymous_cookie(mocker)
|
||||||
|
|
||||||
if not param.get("no_init_db"):
|
if not param.get("no_init_db"):
|
||||||
await init_db()
|
await init_db()
|
||||||
@ -153,6 +153,6 @@ async def _clear_db(app: App):
|
|||||||
def _patch_weibo_get_cookie_name(app: App, mocker: MockerFixture):
|
def _patch_weibo_get_cookie_name(app: App, mocker: MockerFixture):
|
||||||
from nonebot_bison.platform import weibo
|
from nonebot_bison.platform import weibo
|
||||||
|
|
||||||
mocker.patch.object(weibo.WeiboSite, "get_cookie_name", return_value="weibo_cookie_name")
|
mocker.patch.object(weibo.WeiboSite, "_get_current_user_name", return_value="test_name")
|
||||||
yield
|
yield
|
||||||
mocker.stopall()
|
mocker.stopall()
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import json
|
import json
|
||||||
from unittest.mock import patch
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from nonebug.app import App
|
from nonebug.app import App
|
||||||
@ -84,6 +83,7 @@ async def test_add_cookie_target_no_cookie(app: App):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("_clear_db")
|
@pytest.mark.usefixtures("_clear_db")
|
||||||
|
@pytest.mark.usefixtures("_patch_weibo_get_cookie_name")
|
||||||
async def test_add_cookie(app: App):
|
async def test_add_cookie(app: App):
|
||||||
from nonebot.adapters.onebot.v11.bot import Bot
|
from nonebot.adapters.onebot.v11.bot import Bot
|
||||||
from nonebot.adapters.onebot.v11.message import Message
|
from nonebot.adapters.onebot.v11.message import Message
|
||||||
@ -91,8 +91,6 @@ async def test_add_cookie(app: App):
|
|||||||
from nonebot_bison.platform import platform_manager
|
from nonebot_bison.platform import platform_manager
|
||||||
from nonebot_bison.sub_manager import common_platform, add_cookie_matcher, add_cookie_target_matcher
|
from nonebot_bison.sub_manager import common_platform, add_cookie_matcher, add_cookie_target_matcher
|
||||||
|
|
||||||
with patch("nonebot_bison.platform.weibo.WeiboSite._get_current_user_name") as mock:
|
|
||||||
mock.return_value = "test_name"
|
|
||||||
async with app.test_matcher(add_cookie_matcher) as ctx:
|
async with app.test_matcher(add_cookie_matcher) as ctx:
|
||||||
bot = ctx.create_bot(base=Bot)
|
bot = ctx.create_bot(base=Bot)
|
||||||
event_1 = fake_private_message_event(
|
event_1 = fake_private_message_event(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user