Skip to content

Commit 3be5bbd

Browse files
committed
refactor: update service_name fixture and logging in environment mocks
1 parent a5fb576 commit 3be5bbd

File tree

6 files changed

+27
-12
lines changed

6 files changed

+27
-12
lines changed

services/web/server/tests/conftest.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,13 @@
9595
]
9696

9797

98+
@pytest.fixture(scope="session")
99+
def service_name() -> str:
100+
# Overrides service_name fixture needed in docker_compose_service_environment_dict fixture
101+
# NOTE: this can be used to setup configs for different webserver service variants e.g. wg-api-server, wg-garbage-collector, etc
102+
return "webserver"
103+
104+
98105
@pytest.fixture
99106
async def exit_stack() -> AsyncIterator[contextlib.AsyncExitStack]:
100107
"""Provides an AsyncExitStack that gets cleaned up after each test"""

services/web/server/tests/unit/isolated/conftest.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66

77
import json
8+
import logging
89
import os
910
import random
1011
from pathlib import Path
@@ -186,12 +187,15 @@ def mock_webserver_service_environment(
186187
mock_env_devel_environment: EnvVarsDict,
187188
mock_env_dockerfile_build: EnvVarsDict,
188189
mock_env_deployer_pipeline: EnvVarsDict,
190+
mock_webserver_service_environment: EnvVarsDict,
189191
service_name: str,
190192
) -> EnvVarsDict:
191193
"""
192194
Mocks environment produce in the docker compose config with a .env (.env-devel)
193195
and launched with a makefile
194196
"""
197+
logging.getLogger().info("Composing %s service environment ... ", service_name)
198+
195199
# @docker compose config (overrides)
196200
# TODO: get from docker compose config
197201
# r'- ([A-Z2_]+)=\$\{\1:-([\w-]+)\}'
@@ -228,18 +232,23 @@ def mock_webserver_service_environment(
228232
"SWARM_STACK_NAME": os.environ.get("SWARM_STACK_NAME", "simcore"),
229233
"WEBSERVER_LOGLEVEL": os.environ.get("LOG_LEVEL", "WARNING"),
230234
"SESSION_COOKIE_MAX_AGE": str(7 * 24 * 60 * 60),
231-
"WEBSERVER_RPC_NAMESPACE": service_name,
235+
**mock_webserver_service_environment,
232236
},
233237
)
234238

235-
return (
239+
envs = (
236240
mock_env_makefile
237241
| mock_env_devel_environment
238242
| mock_env_dockerfile_build
239243
| mock_env_deployer_pipeline
240244
| mock_envs_docker_compose_environment
241245
)
242246

247+
logging.getLogger().info(
248+
"%s service environment:\n%s", service_name, json.dumps(envs, indent=1)
249+
)
250+
return envs
251+
243252

244253
@pytest.fixture
245254
def mocked_login_required(mocker: MockerFixture):

services/web/server/tests/unit/isolated/test_rest.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ async def client(
2424
unused_tcp_port_factory: Callable,
2525
aiohttp_client: Callable[..., Awaitable[TestClient]],
2626
api_version_prefix: str,
27-
mock_env_devel_environment: EnvVarsDict,
28-
mock_env_deployer_pipeline: EnvVarsDict,
27+
mock_webserver_service_environment: EnvVarsDict,
2928
mocked_db_setup_in_setup_security: MockType,
3029
) -> TestClient:
3130
app = create_safe_application()

services/web/server/tests/unit/with_dbs/03/login/test_login_utils_emails.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from aiohttp.test_utils import make_mocked_request
1313
from faker import Faker
1414
from pytest_mock import MockerFixture
15+
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
1516
from pytest_simcore.helpers.typing_env import EnvVarsDict
1617
from simcore_service_webserver.application_settings import setup_settings
1718
from simcore_service_webserver.constants import RQ_PRODUCT_KEY
@@ -27,7 +28,12 @@
2728

2829

2930
@pytest.fixture
30-
def app(mock_env_devel_environment: EnvVarsDict) -> web.Application:
31+
def app(
32+
docker_compose_service_environment_dict: EnvVarsDict,
33+
monkeypatch: pytest.MonkeyPatch,
34+
) -> web.Application:
35+
36+
setenvs_from_dict(monkeypatch, {**docker_compose_service_environment_dict})
3137

3238
# app_environment: EnvVarsDict) -> web.Application:
3339
app_ = web.Application()

services/web/server/tests/unit/with_dbs/03/test_session_access_policies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
@pytest.fixture
3232
async def client(
3333
aiohttp_client: Callable,
34-
mock_env_devel_environment: EnvVarsDict,
34+
mock_webserver_service_environment: EnvVarsDict,
3535
) -> TestClient:
3636
routes = web.RouteTableDef()
3737

services/web/server/tests/unit/with_dbs/04/conftest.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
88

99

10-
@pytest.fixture(scope="session")
11-
def service_name() -> str:
12-
# Overrides service_name fixture needed in docker_compose_service_environment_dict fixture
13-
return "webserver"
14-
15-
1610
@pytest.fixture
1711
def app_environment(
1812
app_environment: dict[str, str], monkeypatch: pytest.MonkeyPatch

0 commit comments

Comments
 (0)