1313from fastapi import FastAPI
1414from models_library .products import ProductName
1515from models_library .rest_pagination import MAXIMUM_NUMBER_OF_ITEMS_PER_PAGE
16- from models_library .services import ServiceRelease
16+ from models_library .services_history import ServiceRelease
1717from models_library .services_types import ServiceKey , ServiceVersion
1818from models_library .users import UserID
1919from pydantic import ValidationError
2929from servicelib .rabbitmq .rpc_interfaces .catalog .services import (
3030 batch_get_my_services ,
3131 check_for_service ,
32+ get_my_service_history ,
3233 get_service ,
33- get_service_release_history ,
3434 list_services_paginated ,
3535 update_service ,
3636)
@@ -483,13 +483,15 @@ async def test_rpc_batch_get_my_services(
483483 assert my_services [1 ].release .version == other_service_version
484484
485485
486- async def test_rpc_get_service_release_history (
486+ async def test_rpc_get_my_service_history (
487487 background_sync_task_mocked : None ,
488488 mocked_director_service_api : MockRouter ,
489489 rpc_client : RabbitMQRPCClient ,
490490 product_name : ProductName ,
491491 user_id : UserID ,
492492 app : FastAPI ,
493+ create_fake_service_data : Callable ,
494+ services_db_tables_injector : Callable ,
493495):
494496 assert app
495497
@@ -499,49 +501,52 @@ async def test_rpc_get_service_release_history(
499501
500502 # Inject fake service releases for the target service
501503 fake_releases = [
502- ServiceRelease (key = service_key , version = service_version_1 ),
503- ServiceRelease (key = service_key , version = service_version_2 ),
504+ create_fake_service_data (
505+ service_key ,
506+ srv_version ,
507+ team_access = None ,
508+ everyone_access = None ,
509+ product = product_name ,
510+ )
511+ for srv_version in (service_version_1 , service_version_2 )
504512 ]
505513
506514 # Inject unrelated fake service releases
507515 unrelated_service_key_1 = "simcore/services/comp/unrelated-service-1"
508516 unrelated_service_key_2 = "simcore/services/comp/unrelated-service-2"
509517 unrelated_releases = [
510- ServiceRelease (key = unrelated_service_key_1 , version = "1.0.0" ),
511- ServiceRelease (key = unrelated_service_key_1 , version = "1.1.0" ),
512- ServiceRelease (key = unrelated_service_key_2 , version = "2.0.0" ),
518+ * [
519+ create_fake_service_data (
520+ unrelated_service_key_1 ,
521+ srv_version ,
522+ team_access = None ,
523+ everyone_access = None ,
524+ product = product_name ,
525+ )
526+ for srv_version in (service_version_1 , service_version_2 )
527+ ],
528+ create_fake_service_data (
529+ unrelated_service_key_2 ,
530+ "2.0.0" ,
531+ team_access = None ,
532+ everyone_access = None ,
533+ product = product_name ,
534+ ),
513535 ]
514536
515- mocked_director_service_api .post (
516- f"/services/{ service_key } /releases" ,
517- json = [release .model_dump () for release in fake_releases ],
518- )
519- mocked_director_service_api .post (
520- f"/services/{ unrelated_service_key_1 } /releases" ,
521- json = [release .model_dump () for release in unrelated_releases [:2 ]],
522- )
523- mocked_director_service_api .post (
524- f"/services/{ unrelated_service_key_2 } /releases" ,
525- json = [release .model_dump () for release in unrelated_releases [2 :]],
526- )
537+ await services_db_tables_injector (fake_releases + unrelated_releases )
527538
528539 # Call the RPC function
529- release_history = await get_service_release_history (
540+ page = await get_my_service_history (
530541 rpc_client ,
531542 product_name = product_name ,
532543 user_id = user_id ,
533544 service_key = service_key ,
534545 )
546+ release_history : list [ServiceRelease ] = page .data
535547
536548 # Validate the response
537549 assert isinstance (release_history , list )
538550 assert len (release_history ) == 2
539- assert release_history [0 ].key == service_key
540551 assert release_history [0 ].version == service_version_1
541- assert release_history [1 ].key == service_key
542552 assert release_history [1 ].version == service_version_2
543-
544- # Ensure unrelated services do not appear in the release history
545- unrelated_keys = {unrelated_service_key_1 , unrelated_service_key_2 }
546- for release in release_history :
547- assert release .key not in unrelated_keys
0 commit comments