Skip to content

Commit b968a23

Browse files
author
Andrei Neagu
committed
refactor and migrated to yarl
1 parent 00f906b commit b968a23

File tree

4 files changed

+23
-33
lines changed

4 files changed

+23
-33
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from collections.abc import Callable
2+
3+
from yarl import URL
4+
5+
6+
def replace_storage_endpoint(host: str, port: int) -> Callable[[str], str]:
7+
def _(url: str) -> str:
8+
url_obj = URL(url).with_host(host).with_port(port)
9+
return f"{url_obj}"
10+
11+
return _

packages/pytest-simcore/src/pytest_simcore/simcore_storage_service.py

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@
1010
import tenacity
1111
from models_library.projects import ProjectID
1212
from models_library.projects_nodes_io import NodeID, SimcoreS3FileID
13-
from pydantic import AnyUrl, TypeAdapter
13+
from pydantic import TypeAdapter
1414
from pytest_mock import MockerFixture
1515
from servicelib.minio_utils import ServiceRetryPolicyUponInitialization
1616
from yarl import URL
1717

1818
from .helpers.docker import get_service_published_port
1919
from .helpers.host import get_localhost_ip
20+
from .helpers.storage import replace_storage_endpoint
2021

2122

2223
@pytest.fixture(scope="module")
@@ -45,24 +46,12 @@ async def storage_service(
4546
) -> URL:
4647
await wait_till_storage_responsive(storage_endpoint)
4748

48-
def _replace_storage_endpoint(url: str) -> str:
49-
url_obj = TypeAdapter(AnyUrl).validate_python(url)
50-
assert storage_endpoint.host is not None
51-
assert storage_endpoint.port is not None
52-
53-
storage_endpoint_url = AnyUrl.build(
54-
scheme=url_obj.scheme,
55-
host=storage_endpoint.host,
56-
port=storage_endpoint.port,
57-
path=url_obj.path.lstrip("/"),
58-
query=url_obj.query,
59-
)
60-
return f"{storage_endpoint_url}"
61-
6249
# NOTE: Mock to ensure container IP agrees with host IP when testing
50+
assert storage_endpoint.host is not None
51+
assert storage_endpoint.port is not None
6352
mocker.patch(
6453
"simcore_sdk.node_ports_common._filemanager._get_https_link_if_storage_secure",
65-
_replace_storage_endpoint,
54+
replace_storage_endpoint(storage_endpoint.host, storage_endpoint.port),
6655
)
6756

6857
return storage_endpoint

services/dynamic-sidecar/tests/integration/test_modules_long_running_tasks.py

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323
from models_library.projects import ProjectID
2424
from models_library.projects_nodes_io import NodeID, SimcoreS3FileID
2525
from models_library.users import UserID
26-
from pydantic import AnyUrl, TypeAdapter
26+
from pydantic import TypeAdapter
2727
from pytest_mock import MockerFixture
2828
from pytest_simcore.helpers.faker_factories import random_project
2929
from pytest_simcore.helpers.monkeypatch_envs import EnvVarsDict, setenvs_from_dict
3030
from pytest_simcore.helpers.postgres_tools import PostgresTestConfig
31+
from pytest_simcore.helpers.storage import replace_storage_endpoint
3132
from servicelib.fastapi.long_running_tasks.server import TaskProgress
3233
from servicelib.utils import logged_gather
3334
from settings_library.s3 import S3Settings
@@ -161,25 +162,13 @@ def state_paths_to_legacy_archives(
161162
async def simcore_storage_service(mocker: MockerFixture, app: FastAPI) -> None:
162163
storage_host: Final[str] | None = os.environ.get("STORAGE_HOST")
163164
storage_port: Final[str] | None = os.environ.get("STORAGE_PORT")
164-
165-
def _replace_storage_endpoint(url: str) -> str:
166-
url_obj = TypeAdapter(AnyUrl).validate_python(url)
167-
assert storage_host is not None
168-
assert storage_port is not None
169-
170-
storage_endpoint_url = AnyUrl.build(
171-
scheme=url_obj.scheme,
172-
host=storage_host,
173-
port=int(storage_port),
174-
path=url_obj.path.lstrip("/"),
175-
query=url_obj.query,
176-
)
177-
return f"{storage_endpoint_url}"
165+
assert storage_host is not None
166+
assert storage_port is not None
178167

179168
# NOTE: Mock to ensure container IP agrees with host IP when testing
180169
mocker.patch(
181170
"simcore_sdk.node_ports_common._filemanager._get_https_link_if_storage_secure",
182-
_replace_storage_endpoint,
171+
replace_storage_endpoint(storage_host, int(storage_port)),
183172
)
184173

185174

tests/public-api/test_users_api.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class ProfileDict(TypedDict):
3232
first_name: str
3333
last_name: str
3434
email: str
35+
login: str
3536
role: osparc.UserRoleEnum
3637
groups: ProfileGroupsDict
3738
gravatar_id: str
@@ -44,7 +45,7 @@ def expected_profile(registered_user: RegisteredUserDict) -> ProfileDict:
4445
username = email.split("@")[0]
4546

4647
return ProfileDict(
47-
**{
48+
**{ # noqa: PIE804
4849
"first_name": first_name,
4950
"last_name": registered_user["last_name"],
5051
"login": email,

0 commit comments

Comments
 (0)