Skip to content

Commit 8cfa6a9

Browse files
committed
fixes tests
1 parent 927dc9c commit 8cfa6a9

File tree

4 files changed

+43
-31
lines changed

4 files changed

+43
-31
lines changed

services/catalog/src/simcore_service_catalog/api/rpc/_services.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ async def get_my_service_history(
237237
) -> PageRpcServiceRelease:
238238
assert app.state.engine # nosec
239239

240-
total_count, items = await services_api.get_service_history(
240+
total_count, items = await services_api.list_my_service_release_history(
241241
repo=ServicesRepository(app.state.engine),
242242
product_name=product_name,
243243
user_id=user_id,

services/catalog/src/simcore_service_catalog/db/repositories/services.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ async def get_service_history(
467467

468468
async def get_service_history_page(
469469
self,
470+
*,
470471
# access-rights
471472
product_name: ProductName,
472473
user_id: UserID,

services/catalog/src/simcore_service_catalog/services/services_api.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ def _to_get_schema(
121121
async def list_latest_services(
122122
repo: ServicesRepository,
123123
director_api: DirectorApi,
124+
*,
124125
product_name: ProductName,
125126
user_id: UserID,
126127
limit: PageLimitInt | None,
@@ -466,16 +467,21 @@ async def batch_get_my_services(
466467
return my_services
467468

468469

469-
async def get_service_history(
470+
async def list_my_service_release_history(
470471
repo: ServicesRepository,
471472
*,
473+
# access-rights
472474
product_name: ProductName,
473475
user_id: UserID,
476+
# target service
474477
service_key: ServiceKey,
478+
# pagination
475479
limit: PageLimitInt | None = None,
476480
offset: NonNegativeInt | None = None,
481+
# options
477482
include_compatibility: bool = False,
478483
) -> tuple[PageTotalCount, list[ServiceRelease]]:
484+
479485
total_count, history = await repo.get_service_history_page(
480486
# NOTE: that the service history might be different for each user
481487
# since access-rights are defined on a k:v basis
@@ -486,7 +492,7 @@ async def get_service_history(
486492
offset=offset,
487493
)
488494

489-
compatibility_map = {}
495+
compatibility_map: dict[ServiceVersion, Compatibility | None] = {}
490496
if include_compatibility:
491497
msg = "This operation is heavy and for the moment is not necessary"
492498
raise NotImplementedError(msg)

services/catalog/tests/unit/with_dbs/test_api_rpc.py

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from fastapi import FastAPI
1414
from models_library.products import ProductName
1515
from 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
1717
from models_library.services_types import ServiceKey, ServiceVersion
1818
from models_library.users import UserID
1919
from pydantic import ValidationError
@@ -29,8 +29,8 @@
2929
from 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

Comments
 (0)