Skip to content

Commit 9bfec20

Browse files
authored
fix: 继承插件 is_official 的值 (#147)
is_official 的值是手动添加的,所以需要继承之前的值。
1 parent b1693f7 commit 9bfec20

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/utils/store_test/models.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,12 @@ class Metadata(TypedDict):
2424
homepage: str
2525
type: str
2626
supported_adapters: list[str]
27+
28+
29+
class ValidationResult(TypedDict):
30+
"""验证结果"""
31+
32+
valid: bool
33+
raw: dict[str, Any] | None
34+
data: PluginData | None
35+
message: str

src/utils/store_test/validation.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from src.utils.plugin_test import PluginTest, strip_ansi
1515

1616
from .constants import PLUGIN_CONFIGS_URL
17-
from .models import Metadata, PluginData
17+
from .models import Metadata, PluginData, ValidationResult
1818

1919

2020
def get_configs() -> dict[str, list[str]]:
@@ -50,7 +50,7 @@ def extract_version(path: Path) -> str | None:
5050

5151
async def validate_metadata(
5252
result: bool, plugin: PluginData, metadata: Metadata | None
53-
):
53+
) -> ValidationResult:
5454
"""验证插件元数据"""
5555
project_link = plugin["project_link"]
5656
module_name = plugin["module_name"]
@@ -87,7 +87,7 @@ async def validate_metadata(
8787
return {
8888
"valid": True,
8989
"raw": raw_data,
90-
"data": publish_info.dict(exclude={"plugin_test_result"}),
90+
"data": publish_info.dict(exclude={"plugin_test_result"}), # type: ignore
9191
"message": "通过",
9292
}
9393
except ValidationError as e:
@@ -119,6 +119,11 @@ async def validate_plugin(key: str, plugin: PluginData):
119119
metadata_result = await validate_metadata(result, plugin, metadata)
120120
version = extract_version(test.path)
121121

122+
current_plugin = metadata_result["data"]
123+
# 插件验证过程中无法获取是否是官方插件,因此需要从原始数据中获取
124+
if current_plugin:
125+
current_plugin["is_official"] = plugin["is_official"]
126+
122127
# 测试完成后删除测试文件夹
123128
shutil.rmtree(test.path)
124129

@@ -130,7 +135,7 @@ async def validate_plugin(key: str, plugin: PluginData):
130135
"validation_message": metadata_result["message"],
131136
"validation_raw_data": metadata_result["raw"],
132137
"previous": plugin,
133-
"current": metadata_result["data"],
138+
"current": current_plugin,
134139
"time": datetime.now(ZoneInfo("Asia/Shanghai")).strftime("%Y-%m-%d %H:%M:%S"),
135140
"version": version,
136141
}

0 commit comments

Comments
 (0)