@@ -216,3 +216,89 @@ async def test_get_and_patch_service(
216
216
217
217
assert mocked_rpc_catalog_service_api ["get_service" ].call_count == 1
218
218
assert mocked_rpc_catalog_service_api ["update_service" ].call_count == 1
219
+
220
+
221
+ @pytest .xfail (reason = "service tags entrypoints under development" )
222
+ @pytest .mark .parametrize (
223
+ "user_role" ,
224
+ [UserRole .USER ],
225
+ )
226
+ async def test_tags_in_services (
227
+ client : TestClient ,
228
+ logged_user : UserInfoDict ,
229
+ mocked_rpc_catalog_service_api : dict [str , MagicMock ],
230
+ ):
231
+ assert client .app
232
+ assert client .app .router
233
+
234
+ service_key = "simcore/services/dynamic/someservice"
235
+ service_version = "3.4.5"
236
+
237
+ # the service
238
+ url = client .app .router ["get_service" ].url_for (
239
+ service_key = urllib .parse .quote (service_key , safe = "" ),
240
+ service_version = service_version ,
241
+ )
242
+ response = await client .get (f"{ url } " )
243
+ data , error = await assert_status (response , status .HTTP_200_OK )
244
+ assert not error
245
+
246
+ # list tags
247
+ url = client .app .router ["list_service_tags" ].url_for (
248
+ service_key = urllib .parse .quote (service_key , safe = "" ),
249
+ service_version = service_version ,
250
+ )
251
+ response = await client .get (f"{ url } " )
252
+ data , error = await assert_status (response , status .HTTP_200_OK )
253
+
254
+ assert not error
255
+ assert not data
256
+
257
+ # create a tag
258
+ fake_tag = {"name" : "tag1" , "description" : "description1" , "color" : "#f00" }
259
+ url = client .app .router ["create_tag" ].url_for ()
260
+ resp = await client .post (f"{ url } " , json = fake_tag )
261
+ tag , _ = await assert_status (resp , status .HTTP_201_CREATED )
262
+
263
+ tag_id = tag ["id" ]
264
+ assert tag ["name" ] == fake_tag ["name" ]
265
+
266
+ # add_service_tag
267
+ url = client .app .router ["add_service_tag" ].url_for (
268
+ service_key = urllib .parse .quote (service_key , safe = "" ),
269
+ service_version = service_version ,
270
+ tag_id = tag_id ,
271
+ )
272
+ response = await client .get (f"{ url } " )
273
+ data , error = await assert_status (response , status .HTTP_200_OK )
274
+
275
+ # list_service_tags
276
+ url = client .app .router ["list_service_tags" ].url_for (
277
+ service_key = urllib .parse .quote (service_key , safe = "" ),
278
+ service_version = service_version ,
279
+ )
280
+ response = await client .put (f"{ url } " )
281
+ data , error = await assert_status (response , status .HTTP_200_OK )
282
+
283
+ assert not error
284
+ assert len (data ) == 1
285
+
286
+ # remove_service_tag
287
+ url = client .app .router ["remove_service_tag" ].url_for (
288
+ service_key = urllib .parse .quote (service_key , safe = "" ),
289
+ service_version = service_version ,
290
+ tag_id = tag_id ,
291
+ )
292
+ response = await client .delete (f"{ url } " )
293
+ data , error = await assert_status (response , status .HTTP_204_NO_CONTENT )
294
+
295
+ # list_service_tags
296
+ url = client .app .router ["list_service_tags" ].url_for (
297
+ service_key = urllib .parse .quote (service_key , safe = "" ),
298
+ service_version = service_version ,
299
+ )
300
+ response = await client .put (f"{ url } " )
301
+ data , error = await assert_status (response , status .HTTP_200_OK )
302
+
303
+ assert not error
304
+ assert not data
0 commit comments