Skip to content

Commit 984b762

Browse files
authored
🐛Bugfix: Director v2 called from GC errors because of wrong use of yarl library (ITISFoundation#3207)
1 parent 94bbef3 commit 984b762

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

services/web/server/src/simcore_service_webserver/director_v2_core_dynamic_services.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,17 @@ async def get_dynamic_services(
3838
params["project_id"] = project_id
3939

4040
settings: DirectorV2Settings = get_plugin_settings(app)
41-
backend_url = (settings.base_url / "dynamic_services").update_query(**params)
41+
if params: # Update query doesnt work with no params to unwrap
42+
backend_url = (settings.base_url / "dynamic_services").update_query(**params)
43+
else:
44+
backend_url = settings.base_url / "dynamic_services"
4245

4346
services = await request_director_v2(
4447
app, "GET", backend_url, expected_status=web.HTTPOk
4548
)
4649

50+
if services is None:
51+
services = []
4752
assert isinstance(services, list) # nosec
4853
return services
4954

services/web/server/tests/unit/with_dbs/01/test_director_v2_handlers.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# pylint:disable=unused-variable
22
# pylint:disable=unused-argument
33
# pylint:disable=redefined-outer-name
4-
from typing import AsyncIterator, Dict
4+
from typing import AsyncIterator
55

66
import pytest
77
from _helpers import ExpectedResponse, standard_role_response
@@ -10,6 +10,7 @@
1010
from faker import Faker
1111
from models_library.projects import ProjectID
1212
from pytest_simcore.helpers.utils_assert import assert_status
13+
from simcore_service_webserver import director_v2_api
1314
from simcore_service_webserver.db_models import UserRole
1415

1516

@@ -29,7 +30,7 @@ def project_id(faker: Faker) -> ProjectID:
2930
async def test_start_computation(
3031
mocked_director_v2,
3132
client,
32-
logged_user: Dict,
33+
logged_user: dict,
3334
project_id: ProjectID,
3435
user_role: UserRole,
3536
expected: ExpectedResponse,
@@ -53,7 +54,7 @@ async def test_start_computation(
5354
async def test_start_partial_computation(
5455
mocked_director_v2,
5556
client,
56-
logged_user: Dict,
57+
logged_user: dict,
5758
project_id: ProjectID,
5859
user_role: UserRole,
5960
expected: ExpectedResponse,
@@ -79,7 +80,7 @@ async def test_start_partial_computation(
7980
async def test_get_computation(
8081
mocked_director_v2,
8182
client,
82-
logged_user: Dict,
83+
logged_user: dict,
8384
project_id: ProjectID,
8485
user_role: UserRole,
8586
expected: ExpectedResponse,
@@ -93,7 +94,7 @@ async def test_get_computation(
9394
async def test_stop_computation(
9495
mocked_director_v2,
9596
client,
96-
logged_user: Dict,
97+
logged_user: dict,
9798
project_id: ProjectID,
9899
user_role: UserRole,
99100
expected: ExpectedResponse,
@@ -103,3 +104,11 @@ async def test_stop_computation(
103104
await assert_status(
104105
rsp, web.HTTPNoContent if user_role == UserRole.GUEST else expected.no_content
105106
)
107+
108+
109+
async def test_regression_get_dynamic_services_empty_params(
110+
mocked_director_v2,
111+
client,
112+
):
113+
list_of_services = await director_v2_api.get_dynamic_services(client.app)
114+
assert list_of_services == []

0 commit comments

Comments
 (0)