From 5103998bef513e80f38dbaa1908fb26cb93bec5e Mon Sep 17 00:00:00 2001 From: uy_sun Date: Fri, 30 Jun 2023 12:51:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=80=82=E9=85=8D=E5=99=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9C=AA=E6=8E=92=E5=BA=8F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ src/plugins/publish/validation.py | 4 ++-- tests/conftest.py | 12 +++++++++++- tests/publish/models/test_plugin.py | 9 +++++++-- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da3fbd77..79ad4639 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/lang/zh-CN/ ## [Unreleased] +### Fixed + +- 修复输出支持适配器列表未排序的问题 + ## [2.6.1] - 2023-06-26 ### Added diff --git a/src/plugins/publish/validation.py b/src/plugins/publish/validation.py index 4b9d2ebe..118e84e0 100644 --- a/src/plugins/publish/validation.py +++ b/src/plugins/publish/validation.py @@ -286,7 +286,7 @@ def type_validator(cls, v: str) -> str: return v @validator("supported_adapters", pre=True) - def supported_adapters_validator(cls, v: str | set[str] | None) -> set[str] | None: + def supported_adapters_validator(cls, v: str | set[str] | None) -> list[str] | None: # 如果是从 issue 中获取的数据,需要先解码 if isinstance(v, str): try: @@ -309,7 +309,7 @@ def supported_adapters_validator(cls, v: str | set[str] | None) -> set[str] | No raise ValueError( f"⚠️ 适配器 {', '.join(missing_adapters)} 不存在。
请确保适配器模块名称正确。
" ) - return supported_adapters + return sorted(supported_adapters) @classmethod def get_type(cls) -> PublishType: diff --git a/tests/conftest.py b/tests/conftest.py index aa4b2136..4405e18a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -135,7 +135,17 @@ def mocked_api(respx_mock: MockRouter): "homepage": "https://onebot.adapters.nonebot.dev/", "tags": [], "is_official": True, - } + }, + { + "module_name": "nonebot.adapters.onebot.v12", + "project_link": "nonebot-adapter-onebot", + "name": "OneBot V12", + "desc": "OneBot V12 协议", + "author": "yanyongyu", + "homepage": "https://onebot.adapters.nonebot.dev/", + "tags": [], + "is_official": True, + }, ], ) yield respx_mock diff --git a/tests/publish/models/test_plugin.py b/tests/publish/models/test_plugin.py index 8817591c..c62cee59 100644 --- a/tests/publish/models/test_plugin.py +++ b/tests/publish/models/test_plugin.py @@ -74,7 +74,9 @@ async def test_plugin_from_issue_skip_plugin_test( mocker.patch.object(plugin_config, "plugin_test_result", "") mock_issue = mocker.MagicMock() - mock_issue.body = generate_issue_body_plugin_skip_test() + mock_issue.body = generate_issue_body_plugin_skip_test( + supported_adapters=["~onebot.v12", "nonebot.adapters.onebot.v11"] + ) mock_issue.user.login = "author" info = PluginPublishInfo.from_issue(mock_issue) @@ -89,7 +91,10 @@ async def test_plugin_from_issue_skip_plugin_test( tags=[{"label": "test", "color": "#ffffff"}], is_official=False, type="application", - supported_adapters=["nonebot.adapters.onebot.v11"], + supported_adapters=[ + "nonebot.adapters.onebot.v11", + "nonebot.adapters.onebot.v12", + ], ) assert mocked_api["project_link"].called