@@ -11,7 +11,7 @@ async def test_docker_plugin_test(mocked_api: MockRouter, mocker: MockerFixture)
1111 mocked_run = mocker .Mock ()
1212 mocked_run .return_value = json .dumps (
1313 {
14- "metadata" : {} ,
14+ "metadata" : None ,
1515 "outputs" : ["test" ],
1616 "load" : True ,
1717 "run" : True ,
@@ -58,7 +58,7 @@ async def test_docker_plugin_test_metadata_some_fields_empty(
5858 mocked_api : MockRouter , mocker : MockerFixture
5959):
6060 """测试 metadata 的部分字段为空"""
61- from src .providers .docker_test import DockerPluginTest , DockerTestResult , Metadata
61+ from src .providers .docker_test import DockerPluginTest , DockerTestResult
6262
6363 mocked_run = mocker .Mock ()
6464 mocked_run .return_value = json .dumps (
@@ -85,16 +85,80 @@ async def test_docker_plugin_test_metadata_some_fields_empty(
8585 test = DockerPluginTest ("project_link" , "module_name" )
8686 result = await test .run ("3.12" )
8787
88+ assert result == snapshot (
89+ DockerTestResult (
90+ config = "" ,
91+ load = True ,
92+ metadata = {
93+ "name" : "name" ,
94+ "desc" : "desc" ,
95+ "homepage" : None ,
96+ "type" : None ,
97+ "supported_adapters" : None ,
98+ },
99+ outputs = ["test" ],
100+ run = True ,
101+ test_env = "python==3.12" ,
102+ version = "0.0.1" ,
103+ )
104+ )
105+
106+ assert not mocked_api ["store_plugins" ].called
107+ mocked_run .assert_called_once_with (
108+ "ghcr.io/nonebot/nonetest:3.12-latest" ,
109+ environment = snapshot (
110+ {
111+ "PLUGIN_INFO" : "project_link:module_name" ,
112+ "PLUGIN_CONFIG" : "" ,
113+ "PLUGINS_URL" : "https://raw.githubusercontent.com/nonebot/registry/results/plugins.json" ,
114+ }
115+ ),
116+ detach = False ,
117+ remove = True ,
118+ )
119+
120+
121+ async def test_docker_plugin_test_metadata_some_fields_invalid (
122+ mocked_api : MockRouter , mocker : MockerFixture
123+ ):
124+ """测试 metadata 的部分字段不符合规范"""
125+ from src .providers .docker_test import DockerPluginTest , DockerTestResult , Metadata
126+
127+ mocked_run = mocker .Mock ()
128+ mocked_run .return_value = json .dumps (
129+ {
130+ "metadata" : {
131+ "name" : "name" ,
132+ "desc" : "desc" ,
133+ "homepage" : 12 ,
134+ "type" : True ,
135+ "supported_adapters" : {},
136+ },
137+ "outputs" : ["test" ],
138+ "load" : True ,
139+ "run" : True ,
140+ "version" : "0.0.1" ,
141+ "config" : "" ,
142+ }
143+ ).encode ()
144+ mocked_client = mocker .Mock ()
145+ mocked_client .containers .run = mocked_run
146+ mocked_docker = mocker .patch ("docker.DockerClient" )
147+ mocked_docker .return_value = mocked_client
148+
149+ test = DockerPluginTest ("project_link" , "module_name" )
150+ result = await test .run ("3.12" )
151+
88152 assert result == snapshot (
89153 DockerTestResult (
90154 config = "" ,
91155 load = True ,
92156 metadata = Metadata (
93- desc = "desc" ,
94- homepage = None ,
95157 name = "name" ,
96- supported_adapters = None ,
97- type = None ,
158+ desc = "desc" ,
159+ homepage = 12 , # type: ignore
160+ type = True , # type: ignore
161+ supported_adapters = {}, # type: ignore
98162 ),
99163 outputs = ["test" ],
100164 run = True ,
0 commit comments