mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-04 02:26:11 +08:00
✅ 修修单测
This commit is contained in:
parent
6b6bf9d8f8
commit
f31a798326
@ -10,6 +10,7 @@ from nonebot.compat import type_validate_python
|
|||||||
from nonebot_plugin_datastore.db import create_session
|
from nonebot_plugin_datastore.db import create_session
|
||||||
from sqlalchemy.orm.strategy_options import selectinload
|
from sqlalchemy.orm.strategy_options import selectinload
|
||||||
|
|
||||||
|
from .. import config
|
||||||
from .utils import NBESFVerMatchErr, row2dict
|
from .utils import NBESFVerMatchErr, row2dict
|
||||||
from .nbesf_model import NBESFBase, v1, v2, v3
|
from .nbesf_model import NBESFBase, v1, v2, v3
|
||||||
from ..db_model import User, Cookie, Target, Subscribe, CookieTarget
|
from ..db_model import User, Cookie, Target, Subscribe, CookieTarget
|
||||||
@ -64,13 +65,22 @@ async def subscribes_export(selector: Callable[[Select], Select]) -> v3.SubGroup
|
|||||||
target_payload = type_validate_python(v3.Target, cookie_target.target)
|
target_payload = type_validate_python(v3.Target, cookie_target.target)
|
||||||
cookie_target_dict[cookie_target.cookie].append(target_payload)
|
cookie_target_dict[cookie_target.cookie].append(target_payload)
|
||||||
|
|
||||||
cookies: list[v3.Cookie] = []
|
def cookie_transform(cookie: Cookie, targets: [Target]) -> v3.Cookie:
|
||||||
for cookie, targets in cookie_target_dict.items():
|
|
||||||
assert isinstance(cookie, Cookie)
|
|
||||||
cookie_dict = row2dict(cookie)
|
cookie_dict = row2dict(cookie)
|
||||||
cookie_dict["tags"] = cookie.tags
|
cookie_dict["tags"] = cookie.tags
|
||||||
cookie_dict["targets"] = targets
|
cookie_dict["targets"] = targets
|
||||||
cookies.append(v3.Cookie(**cookie_dict))
|
return v3.Cookie(**cookie_dict)
|
||||||
|
|
||||||
|
cookies: list[v3.Cookie] = []
|
||||||
|
cookie_set = set()
|
||||||
|
for cookie, targets in cookie_target_dict.items():
|
||||||
|
assert isinstance(cookie, Cookie)
|
||||||
|
cookies.append(cookie_transform(cookie, targets))
|
||||||
|
cookie_set.add(cookie.id)
|
||||||
|
|
||||||
|
# 添加未关联的cookie
|
||||||
|
all_cookies = await config.get_cookie(is_anonymous=False)
|
||||||
|
cookies.extend([cookie_transform(c, []) for c in all_cookies if c.id not in cookie_set])
|
||||||
|
|
||||||
sub_group = v3.SubGroup(groups=groups, cookies=cookies)
|
sub_group = v3.SubGroup(groups=groups, cookies=cookies)
|
||||||
|
|
||||||
|
@ -51,8 +51,7 @@ async def test_del_cookie_err(app: App):
|
|||||||
should_send_saa(
|
should_send_saa(
|
||||||
ctx,
|
ctx,
|
||||||
MessageFactory(
|
MessageFactory(
|
||||||
'已添加的 Cookie 为:\n1 weibo.com weibo.com [{"cookie":] '
|
"已添加的 Cookie 为:\n1 weibo.com unnamed cookie 1个关联\n请输入要删除的 Cookie 的序号\n输入'取消'中止"
|
||||||
"1个关联\n请输入要删除的 Cookie 的序号\n输入'取消'中止"
|
|
||||||
),
|
),
|
||||||
bot,
|
bot,
|
||||||
event=event_1,
|
event=event_1,
|
||||||
@ -118,7 +117,7 @@ async def test_del_cookie(app: App):
|
|||||||
should_send_saa(
|
should_send_saa(
|
||||||
ctx,
|
ctx,
|
||||||
MessageFactory(
|
MessageFactory(
|
||||||
'已添加的 Cookie 为:\n1 weibo.com weibo.com [{"cookie":]'
|
"已添加的 Cookie 为:\n1 weibo.com unnamed cookie"
|
||||||
" 0个关联\n请输入要删除的 Cookie 的序号\n输入'取消'中止"
|
" 0个关联\n请输入要删除的 Cookie 的序号\n输入'取消'中止"
|
||||||
),
|
),
|
||||||
bot,
|
bot,
|
||||||
|
69
tests/subs_io/static/v3/subs_export.json
Normal file
69
tests/subs_io/static/v3/subs_export.json
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 1232
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 2342
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": ["kaltsit", "amiya"],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"categories": [1, 2],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "bilibili_name",
|
||||||
|
"target": "bilibili_id",
|
||||||
|
"platform_name": "bilibili",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cookies": [
|
||||||
|
{
|
||||||
|
"site_name": "weibo.com",
|
||||||
|
"content": "{\"cookie\": \"test\"}",
|
||||||
|
"cookie_name": "test cookie",
|
||||||
|
"cd_milliseconds": 0,
|
||||||
|
"is_universal": false,
|
||||||
|
"tags": {},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
48
tests/subs_io/static/v3/subs_export.yaml
Normal file
48
tests/subs_io/static/v3/subs_export.yaml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
version: 3
|
||||||
|
groups:
|
||||||
|
- subs:
|
||||||
|
- categories: []
|
||||||
|
tags: []
|
||||||
|
target:
|
||||||
|
default_schedule_weight: 10
|
||||||
|
platform_name: weibo
|
||||||
|
target: weibo_id
|
||||||
|
target_name: weibo_name
|
||||||
|
user_target:
|
||||||
|
platform_type: QQ Group
|
||||||
|
group_id: 123552
|
||||||
|
- subs:
|
||||||
|
- categories: []
|
||||||
|
tags:
|
||||||
|
- kaltsit
|
||||||
|
- amiya
|
||||||
|
target:
|
||||||
|
default_schedule_weight: 10
|
||||||
|
platform_name: weibo
|
||||||
|
target: weibo_id
|
||||||
|
target_name: weibo_name
|
||||||
|
- categories:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
tags: []
|
||||||
|
target:
|
||||||
|
default_schedule_weight: 10
|
||||||
|
platform_name: bilibili
|
||||||
|
target: bilibili_id
|
||||||
|
target_name: bilibili_name
|
||||||
|
user_target:
|
||||||
|
platform_type: QQ Group
|
||||||
|
group_id: 234662
|
||||||
|
|
||||||
|
cookies:
|
||||||
|
- site_name: weibo.com
|
||||||
|
content: '{"cookie": "test"}'
|
||||||
|
cookie_name: test cookie
|
||||||
|
cd_milliseconds: 0
|
||||||
|
is_universal: false
|
||||||
|
tags: {}
|
||||||
|
targets:
|
||||||
|
- target_name: weibo_name
|
||||||
|
target: weibo_id
|
||||||
|
platform_name: weibo
|
||||||
|
default_schedule_weight: 10
|
103
tests/subs_io/static/v3/subs_export_all_illegal.json
Normal file
103
tests/subs_io/static/v3/subs_export_all_illegal.json
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 123
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 234
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"tags": ["kaltsit", "amiya"],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"categories": [1, 2],
|
||||||
|
"tags": [],
|
||||||
|
"target": [
|
||||||
|
{
|
||||||
|
"target_name": "bilibili_name",
|
||||||
|
"target": "bilibili_id",
|
||||||
|
"platform_name": "bilibili",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 123
|
||||||
|
},
|
||||||
|
"subs": {
|
||||||
|
"categories": [],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name2",
|
||||||
|
"target": "weibo_id2",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 123
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name2",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cookies": [
|
||||||
|
{
|
||||||
|
"site_name": "weibo.com1111",
|
||||||
|
"content": "{\"cookie\": 111}",
|
||||||
|
"cookie_name": "test cookie1",
|
||||||
|
"cd_milliseconds": -1,
|
||||||
|
"is_universal": false,
|
||||||
|
"tags": {},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
97
tests/subs_io/static/v3/subs_export_has_subdup_err.json
Normal file
97
tests/subs_io/static/v3/subs_export_has_subdup_err.json
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 1232
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 2342
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": ["kaltsit", "amiya"],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"categories": [1, 2],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "bilibili_name",
|
||||||
|
"target": "bilibili_id",
|
||||||
|
"platform_name": "bilibili",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_target": {
|
||||||
|
"platform_type": "QQ Group",
|
||||||
|
"group_id": 1232
|
||||||
|
},
|
||||||
|
"subs": [
|
||||||
|
{
|
||||||
|
"categories": [],
|
||||||
|
"tags": [],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"categories": [2, 6],
|
||||||
|
"tags": ["poca"],
|
||||||
|
"target": {
|
||||||
|
"target_name": "weibo_name2",
|
||||||
|
"target": "weibo_id2",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cookies": [
|
||||||
|
{
|
||||||
|
"site_name": "weibo.com",
|
||||||
|
"content": "{\"cookie\": \"test\"}",
|
||||||
|
"cookie_name": "test cookie",
|
||||||
|
"cd_milliseconds": 0,
|
||||||
|
"is_universal": false,
|
||||||
|
"tags": {},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"target_name": "weibo_name",
|
||||||
|
"target": "weibo_id",
|
||||||
|
"platform_name": "weibo",
|
||||||
|
"default_schedule_weight": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -40,6 +40,7 @@ def test_cli_help(app: App):
|
|||||||
async def test_subs_export(app: App, tmp_path: Path):
|
async def test_subs_export(app: App, tmp_path: Path):
|
||||||
from nonebot_plugin_saa import TargetQQGroup
|
from nonebot_plugin_saa import TargetQQGroup
|
||||||
|
|
||||||
|
from nonebot_bison.config.db_model import Cookie
|
||||||
from nonebot_bison.config.db_config import config
|
from nonebot_bison.config.db_config import config
|
||||||
from nonebot_bison.types import Target as TTarget
|
from nonebot_bison.types import Target as TTarget
|
||||||
from nonebot_bison.script.cli import cli, run_sync
|
from nonebot_bison.script.cli import cli, run_sync
|
||||||
@ -70,6 +71,14 @@ async def test_subs_export(app: App, tmp_path: Path):
|
|||||||
cats=[1, 2],
|
cats=[1, 2],
|
||||||
tags=[],
|
tags=[],
|
||||||
)
|
)
|
||||||
|
cookie_id = await config.add_cookie(
|
||||||
|
Cookie(
|
||||||
|
site_name="weibo.com",
|
||||||
|
content='{"cookie": "test"}',
|
||||||
|
cookie_name="test cookie",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
await config.add_cookie_target("weibo_id", "weibo", cookie_id)
|
||||||
|
|
||||||
assert len(await config.list_subs_with_all_info()) == 3
|
assert len(await config.list_subs_with_all_info()) == 3
|
||||||
|
|
||||||
@ -84,8 +93,9 @@ async def test_subs_export(app: App, tmp_path: Path):
|
|||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
file_path = Path.cwd() / "bison_subscribes_export_1.json"
|
file_path = Path.cwd() / "bison_subscribes_export_1.json"
|
||||||
assert file_path.exists()
|
assert file_path.exists()
|
||||||
assert '"version": 2' in file_path.read_text()
|
assert '"version": 3' in file_path.read_text()
|
||||||
assert '"group_id": 123' in file_path.read_text()
|
assert '"group_id": 123' in file_path.read_text()
|
||||||
|
assert '"content": "{\\"cookie\\": \\"test\\"}",\n' in file_path.read_text()
|
||||||
|
|
||||||
# 是否导出到指定已存在文件夹
|
# 是否导出到指定已存在文件夹
|
||||||
data_dir = tmp_path / "data"
|
data_dir = tmp_path / "data"
|
||||||
@ -94,8 +104,9 @@ async def test_subs_export(app: App, tmp_path: Path):
|
|||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
file_path2 = data_dir / "bison_subscribes_export_1.json"
|
file_path2 = data_dir / "bison_subscribes_export_1.json"
|
||||||
assert file_path2.exists()
|
assert file_path2.exists()
|
||||||
assert '"version": 2' in file_path2.read_text()
|
assert '"version": 3' in file_path2.read_text()
|
||||||
assert '"group_id": 123' in file_path2.read_text()
|
assert '"group_id": 123' in file_path2.read_text()
|
||||||
|
assert '"content": "{\\"cookie\\": \\"test\\"}",\n' in file_path.read_text()
|
||||||
|
|
||||||
# 是否拒绝导出到不存在的文件夹
|
# 是否拒绝导出到不存在的文件夹
|
||||||
result = await run_sync(runner.invoke)(cli, ["export", "-p", str(tmp_path / "data2")])
|
result = await run_sync(runner.invoke)(cli, ["export", "-p", str(tmp_path / "data2")])
|
||||||
@ -106,9 +117,10 @@ async def test_subs_export(app: App, tmp_path: Path):
|
|||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
file_path3 = tmp_path / "bison_subscribes_export_1.yaml"
|
file_path3 = tmp_path / "bison_subscribes_export_1.yaml"
|
||||||
assert file_path3.exists()
|
assert file_path3.exists()
|
||||||
assert "version: 2" in file_path3.read_text()
|
assert "version: 3" in file_path3.read_text()
|
||||||
assert "group_id: 123" in file_path3.read_text()
|
assert "group_id: 123" in file_path3.read_text()
|
||||||
assert "platform_type: QQ Group" in file_path3.read_text()
|
assert "platform_type: QQ Group" in file_path3.read_text()
|
||||||
|
assert '"content": "{\\"cookie\\": \\"test\\"}",\n' in file_path.read_text()
|
||||||
|
|
||||||
# 是否允许以未支持的格式导出
|
# 是否允许以未支持的格式导出
|
||||||
result = await run_sync(runner.invoke)(cli, ["export", "-p", str(tmp_path), "--format", "toml"])
|
result = await run_sync(runner.invoke)(cli, ["export", "-p", str(tmp_path), "--format", "toml"])
|
||||||
|
@ -8,9 +8,9 @@ from .utils import get_json
|
|||||||
async def test_subs_export(app: App, init_scheduler):
|
async def test_subs_export(app: App, init_scheduler):
|
||||||
from nonebot_plugin_saa import TargetQQGroup
|
from nonebot_plugin_saa import TargetQQGroup
|
||||||
|
|
||||||
from nonebot_bison.config.db_model import User
|
|
||||||
from nonebot_bison.config.db_config import config
|
from nonebot_bison.config.db_config import config
|
||||||
from nonebot_bison.types import Target as TTarget
|
from nonebot_bison.types import Target as TTarget
|
||||||
|
from nonebot_bison.config.db_model import User, Cookie
|
||||||
from nonebot_bison.config.subs_io import subscribes_export
|
from nonebot_bison.config.subs_io import subscribes_export
|
||||||
|
|
||||||
await config.add_subscribe(
|
await config.add_subscribe(
|
||||||
@ -37,12 +37,20 @@ async def test_subs_export(app: App, init_scheduler):
|
|||||||
cats=[1, 2],
|
cats=[1, 2],
|
||||||
tags=[],
|
tags=[],
|
||||||
)
|
)
|
||||||
|
cookie_id = await config.add_cookie(
|
||||||
|
Cookie(
|
||||||
|
site_name="weibo.com",
|
||||||
|
content='{"cookie": "test"}',
|
||||||
|
cookie_name="test cookie",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
await config.add_cookie_target("weibo_id", "weibo", cookie_id)
|
||||||
|
|
||||||
data = await config.list_subs_with_all_info()
|
data = await config.list_subs_with_all_info()
|
||||||
assert len(data) == 3
|
assert len(data) == 3
|
||||||
|
|
||||||
nbesf_data = await subscribes_export(lambda x: x)
|
nbesf_data = await subscribes_export(lambda x: x)
|
||||||
assert model_dump(nbesf_data) == get_json("v2/subs_export.json")
|
assert model_dump(nbesf_data) == get_json("v3/subs_export.json")
|
||||||
|
|
||||||
nbesf_data_user_234 = await subscribes_export(
|
nbesf_data_user_234 = await subscribes_export(
|
||||||
lambda stmt: stmt.where(User.user_target == {"platform_type": "QQ Group", "group_id": 2342})
|
lambda stmt: stmt.where(User.user_target == {"platform_type": "QQ Group", "group_id": 2342})
|
||||||
@ -102,16 +110,30 @@ async def test_subs_import_dup_err(app: App, init_scheduler):
|
|||||||
|
|
||||||
async def test_subs_import_version_disorder(app: App, init_scheduler):
|
async def test_subs_import_version_disorder(app: App, init_scheduler):
|
||||||
from nonebot_bison.config.subs_io import subscribes_import
|
from nonebot_bison.config.subs_io import subscribes_import
|
||||||
from nonebot_bison.config.subs_io.nbesf_model import v1, v2
|
|
||||||
from nonebot_bison.config.subs_io.utils import NBESFParseErr
|
from nonebot_bison.config.subs_io.utils import NBESFParseErr
|
||||||
|
from nonebot_bison.config.subs_io.nbesf_model import v1, v2, v3
|
||||||
# use v2 parse v1
|
|
||||||
with pytest.raises(NBESFParseErr):
|
|
||||||
v1.nbesf_parser(get_json("v2/subs_export_has_subdup_err.json"))
|
|
||||||
|
|
||||||
# use v1 parse v2
|
# use v1 parse v2
|
||||||
|
with pytest.raises(NBESFParseErr):
|
||||||
|
v1.nbesf_parser(get_json("v2/subs_export_has_subdup_err.json"))
|
||||||
|
# use v1 parse v3
|
||||||
|
with pytest.raises(NBESFParseErr):
|
||||||
|
v1.nbesf_parser(get_json("v3/subs_export_has_subdup_err.json"))
|
||||||
|
|
||||||
|
# use v2 parse v1
|
||||||
with pytest.raises(NBESFParseErr):
|
with pytest.raises(NBESFParseErr):
|
||||||
v2.nbesf_parser(get_json("v1/subs_export_has_subdup_err.json"))
|
v2.nbesf_parser(get_json("v1/subs_export_has_subdup_err.json"))
|
||||||
|
# # use v2 parse v3
|
||||||
|
# with pytest.raises(NBESFParseErr):
|
||||||
|
# v2.nbesf_parser(get_json("v3/subs_export_has_subdup_err.json"))
|
||||||
|
|
||||||
|
# use v3 parse v1
|
||||||
|
with pytest.raises(NBESFParseErr):
|
||||||
|
v3.nbesf_parser(get_json("v1/subs_export_has_subdup_err.json"))
|
||||||
|
# # use v3 parse v2
|
||||||
|
# with pytest.raises(NBESFParseErr):
|
||||||
|
# v3.nbesf_parser(get_json("v2/subs_export_has_subdup_err.json"))
|
||||||
|
# TODO: v3 parse v2 不会报错,但是v3 parse v1 会报错,似乎是有问题 (
|
||||||
|
|
||||||
with pytest.raises(AssertionError): # noqa: PT012
|
with pytest.raises(AssertionError): # noqa: PT012
|
||||||
nbesf_data = v2.nbesf_parser(get_json("v2/subs_export_has_subdup_err.json"))
|
nbesf_data = v2.nbesf_parser(get_json("v2/subs_export_has_subdup_err.json"))
|
||||||
@ -121,7 +143,7 @@ async def test_subs_import_version_disorder(app: App, init_scheduler):
|
|||||||
|
|
||||||
async def test_subs_import_all_fail(app: App, init_scheduler):
|
async def test_subs_import_all_fail(app: App, init_scheduler):
|
||||||
"""只要文件格式有任何一个错误, 都不会进行订阅"""
|
"""只要文件格式有任何一个错误, 都不会进行订阅"""
|
||||||
from nonebot_bison.config.subs_io.nbesf_model import v1, v2
|
from nonebot_bison.config.subs_io.nbesf_model import v1, v2, v3
|
||||||
from nonebot_bison.config.subs_io.nbesf_model.v1 import NBESFParseErr
|
from nonebot_bison.config.subs_io.nbesf_model.v1 import NBESFParseErr
|
||||||
|
|
||||||
with pytest.raises(NBESFParseErr):
|
with pytest.raises(NBESFParseErr):
|
||||||
@ -129,3 +151,6 @@ async def test_subs_import_all_fail(app: App, init_scheduler):
|
|||||||
|
|
||||||
with pytest.raises(NBESFParseErr):
|
with pytest.raises(NBESFParseErr):
|
||||||
v2.nbesf_parser(get_json("v2/subs_export_all_illegal.json"))
|
v2.nbesf_parser(get_json("v2/subs_export_all_illegal.json"))
|
||||||
|
|
||||||
|
with pytest.raises(NBESFParseErr):
|
||||||
|
v3.nbesf_parser(get_json("v3/subs_export_all_illegal.json"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user