Skip to content

Commit 7a9bd3f

Browse files
authored
🐛 Sort services naturally and adapt test (ITISFoundation#3299)
* Sort services naturally and adapt test
1 parent 993d4b7 commit 7a9bd3f

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

services/catalog/setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ commit_args = --no-verify
88
[bumpversion:file:VERSION]
99

1010
[bumpversion:file:src/simcore_service_catalog/api/v0/openapi.yaml]
11+
12+
[tool:pytest]
13+
asyncio_mode = auto

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,10 @@ async def list_service_releases(
141141
async for row in await conn.stream(query):
142142
releases.append(ServiceMetaDataAtDB(**row))
143143

144-
return releases
144+
# Now sort naturally from latest first: (This is lame, the sorting should be done in the db)
145+
return sorted(
146+
releases, key=lambda x: packaging.version.parse(x.version), reverse=True
147+
)
145148

146149
async def get_latest_release(self, key: str) -> Optional[ServiceMetaDataAtDB]:
147150
"""Returns last release or None if service was never released"""

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# pylint: disable=unused-argument
33
# pylint: disable=unused-variable
44

5-
from typing import Callable, List
5+
from typing import Callable
66

77
from fastapi import FastAPI
88
from models_library.services import ServiceDockerData
@@ -81,8 +81,8 @@ def test_reduce_access_rights():
8181

8282
async def test_auto_upgrade_policy(
8383
sqlalchemy_async_engine: AsyncEngine,
84-
user_groups_ids: List[int],
85-
products_names: List[str],
84+
user_groups_ids: list[int],
85+
products_names: list[str],
8686
services_db_tables_injector: Callable,
8787
service_catalog_faker: Callable,
8888
mocker,
@@ -112,14 +112,21 @@ async def test_auto_upgrade_policy(
112112
new_service_metadata = ServiceDockerData.parse_obj(
113113
ServiceDockerData.Config.schema_extra["examples"][MOST_UPDATED_EXAMPLE]
114114
)
115-
new_service_metadata.version = "1.0.1"
115+
new_service_metadata.version = "1.0.11"
116116

117-
# we two versions of the service in the database
117+
# we have three versions of the service in the database for which the sorting matters: (1.0.11 should inherit from 1.0.10 not 1.0.9)
118118
await services_db_tables_injector(
119119
[
120120
service_catalog_faker(
121121
new_service_metadata.key,
122-
"0.5.0",
122+
"1.0.1",
123+
team_access=None,
124+
everyone_access=None,
125+
product=target_product,
126+
),
127+
service_catalog_faker(
128+
new_service_metadata.key,
129+
"1.0.9",
123130
team_access=None,
124131
everyone_access=None,
125132
product=target_product,
@@ -128,14 +135,14 @@ async def test_auto_upgrade_policy(
128135
# which were released in two different product
129136
service_catalog_faker(
130137
new_service_metadata.key,
131-
"1.0.0",
138+
"1.0.10",
132139
team_access="x",
133140
everyone_access=None,
134141
product=target_product,
135142
),
136143
service_catalog_faker(
137144
new_service_metadata.key,
138-
"1.0.0",
145+
"1.0.10",
139146
team_access="x",
140147
everyone_access=None,
141148
product=products_names[-1],

0 commit comments

Comments
 (0)