mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-06 20:06:12 +08:00
* 使用 SQLModel * 处理数据库迁移 * 与之前的模型相匹配 * sqlmodel 和 sqlalchemy 的导入移入测试函数内 并且使用 init_db 且测试前加载插件 * 重命名 alembic_version 表之前先检查是否存在且 version_num 属于插件 * 降级应该是把名称重新命名回去而不是删掉 * 不再设置 arbitrary_types_allowed 为 True
83 lines
2.5 KiB
Python
83 lines
2.5 KiB
Python
async def test_migration(use_legacy_config):
|
|
from nonebot_bison.config.config_legacy import config as config_legacy
|
|
from nonebot_bison.config.db_config import config
|
|
from nonebot_plugin_datastore.db import init_db
|
|
|
|
config_legacy.add_subscribe(
|
|
user=123,
|
|
user_type="group",
|
|
target="weibo_id",
|
|
target_name="weibo_name",
|
|
target_type="weibo",
|
|
cats=[2, 3],
|
|
tags=[],
|
|
)
|
|
config_legacy.add_subscribe(
|
|
user=123,
|
|
user_type="group",
|
|
target="weibo_id2",
|
|
target_name="weibo_name2",
|
|
target_type="weibo",
|
|
cats=[1, 2],
|
|
tags=["tag"],
|
|
)
|
|
config_legacy.add_subscribe(
|
|
user=234,
|
|
user_type="group",
|
|
target="weibo_id",
|
|
target_name="weibo_name",
|
|
target_type="weibo",
|
|
cats=[1],
|
|
tags=[],
|
|
)
|
|
# await data_migrate()
|
|
await init_db()
|
|
user123_config = await config.list_subscribe(123, "group")
|
|
assert len(user123_config) == 2
|
|
for c in user123_config:
|
|
if c.target.target == "weibo_id":
|
|
assert c.categories == [2, 3]
|
|
assert c.target.target_name == "weibo_name"
|
|
assert c.target.platform_name == "weibo"
|
|
assert c.tags == []
|
|
elif c.target.target == "weibo_id2":
|
|
assert c.categories == [1, 2]
|
|
assert c.target.target_name == "weibo_name2"
|
|
assert c.target.platform_name == "weibo"
|
|
assert c.tags == ["tag"]
|
|
user234_config = await config.list_subscribe(234, "group")
|
|
assert len(user234_config) == 1
|
|
assert user234_config[0].categories == [1]
|
|
assert user234_config[0].target.target == "weibo_id"
|
|
assert user234_config[0].target.target_name == "weibo_name"
|
|
assert user234_config[0].tags == []
|
|
|
|
|
|
async def test_migrate_dup(use_legacy_config):
|
|
from nonebot_bison.config.config_legacy import config as config_legacy
|
|
from nonebot_bison.config.db_config import config
|
|
from nonebot_plugin_datastore.db import init_db
|
|
|
|
config_legacy.add_subscribe(
|
|
user=123,
|
|
user_type="group",
|
|
target="weibo_id",
|
|
target_name="weibo_name",
|
|
target_type="weibo",
|
|
cats=[2, 3],
|
|
tags=[],
|
|
)
|
|
config_legacy.add_subscribe(
|
|
user=123,
|
|
user_type="group",
|
|
target="weibo_id",
|
|
target_name="weibo_name",
|
|
target_type="weibo",
|
|
cats=[2, 3],
|
|
tags=[],
|
|
)
|
|
# await data_migrate()
|
|
await init_db()
|
|
user123_config = await config.list_subscribe(123, "group")
|
|
assert len(user123_config) == 1
|