Skip to content

Commit 9197aa6

Browse files
committed
setup_db
1 parent 8a5ef3b commit 9197aa6

File tree

6 files changed

+29
-21
lines changed

6 files changed

+29
-21
lines changed

services/web/server/src/simcore_service_webserver/security/plugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import aiohttp_security # type: ignore[import-untyped]
1313
from aiohttp import web
1414
from servicelib.aiohttp.application_setup import ModuleCategory, app_module_setup
15-
from simcore_service_webserver.db.plugin import setup_db
1615

16+
from ..db.plugin import setup_db
1717
from ..session.plugin import setup_session
1818
from ._authz_access_model import RoleBasedAccessModel
1919
from ._authz_access_roles import ROLES_PERMISSIONS

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
from pathlib import Path
55

66
import pytest
7+
import simcore_service_webserver
8+
import simcore_service_webserver.security
79
from faker import Faker
8-
from pytest_mock import MockerFixture
10+
from pytest_mock import MockerFixture, MockType
911
from pytest_simcore.helpers.monkeypatch_envs import (
1012
setenvs_from_dict,
1113
setenvs_from_envfile,
@@ -257,3 +259,16 @@ def mocked_login_required(mocker: MockerFixture):
257259
spec=True,
258260
return_value="osparc",
259261
)
262+
263+
264+
@pytest.fixture
265+
def mocked_db_setup_in_setup_security(mocker: MockerFixture) -> MockType:
266+
"""Mocking avoids setting up a full db"""
267+
import simcore_service_webserver.security.plugin
268+
269+
return mocker.patch.object(
270+
simcore_service_webserver.security.plugin,
271+
"setup_db",
272+
autospec=True,
273+
return_value=True,
274+
)

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

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import pytest
1111
from aiohttp.client_exceptions import ClientConnectionError
1212
from aiohttp.test_utils import TestClient
13-
from pytest_mock import MockerFixture
13+
from pytest_mock import MockerFixture, MockType
1414
from pytest_simcore.helpers.assert_checks import assert_status
1515
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
1616
from pytest_simcore.helpers.typing_env import EnvVarsDict
@@ -22,7 +22,6 @@
2222
setup_settings,
2323
)
2424
from simcore_service_webserver.rest.plugin import setup_rest
25-
from simcore_service_webserver.security.plugin import setup_security
2625
from simcore_service_webserver.session.plugin import setup_session
2726

2827

@@ -101,14 +100,8 @@ async def client(
101100
aiohttp_client: Callable[..., Awaitable[TestClient]],
102101
mock_orphaned_services: MagicMock,
103102
app_environment: EnvVarsDict,
104-
mocker: MockerFixture,
103+
mocked_db_setup_in_setup_security: MockType,
105104
):
106-
setup_db_mock = mocker.patch(
107-
"simcore_service_webserver.security.plugin.setup_db",
108-
autospec=True,
109-
return_value=True,
110-
)
111-
112105
# app_environment are in place
113106
assert {key: os.environ[key] for key in app_environment} == app_environment
114107
expected_activity_settings = PrometheusSettings.create_from_envs()
@@ -118,14 +111,10 @@ async def client(
118111
settings = setup_settings(app)
119112
assert expected_activity_settings == settings.WEBSERVER_ACTIVITY
120113

121-
assert not setup_db_mock.called
122-
123114
setup_session(app)
124-
setup_security(app)
125-
126-
assert setup_db_mock.called
127-
128115
setup_rest(app)
116+
assert mocked_db_setup_in_setup_security.called
117+
129118
assert setup_activity(app)
130119

131120
return await aiohttp_client(app)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import simcore_service_webserver
1515
from aiohttp import web
1616
from aiohttp.test_utils import TestClient
17+
from pytest_mock import MockType
1718
from pytest_simcore.helpers.assert_checks import assert_status
1819
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
1920
from pytest_simcore.helpers.typing_env import EnvVarsDict
@@ -29,7 +30,6 @@
2930
from simcore_service_webserver.diagnostics.plugin import setup_diagnostics
3031
from simcore_service_webserver.diagnostics.settings import DiagnosticsSettings
3132
from simcore_service_webserver.rest.plugin import setup_rest
32-
from simcore_service_webserver.security.plugin import setup_security
3333
from tenacity import retry
3434
from tenacity.before import before_log
3535
from tenacity.stop import stop_after_attempt
@@ -104,6 +104,7 @@ def mock_environment(
104104

105105
@pytest.fixture
106106
async def client(
107+
mocked_db_setup_in_setup_security: MockType,
107108
unused_tcp_port_factory: Callable,
108109
aiohttp_client: Callable[..., Awaitable[TestClient]],
109110
api_version_prefix: str,
@@ -155,7 +156,6 @@ async def delay_response(request: web.Request):
155156

156157
# activates some sub-modules
157158
assert setup_settings(app)
158-
setup_security(app)
159159
setup_rest(app)
160160

161161
setup_diagnostics(app)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import pytest
1010
from aiohttp import web
1111
from aiohttp.test_utils import TestClient
12-
from pytest_mock import MockerFixture
12+
from pytest_mock import MockerFixture, MockType
1313
from pytest_simcore.helpers.assert_checks import assert_status
1414
from pytest_simcore.helpers.typing_env import EnvVarsDict
1515
from servicelib.aiohttp import status
@@ -26,6 +26,7 @@ async def client(
2626
api_version_prefix: str,
2727
mock_env_devel_environment: EnvVarsDict,
2828
mock_env_deployer_pipeline: EnvVarsDict,
29+
mocked_db_setup_in_setup_security: MockType,
2930
) -> TestClient:
3031
app = create_safe_application()
3132

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from models_library.emails import LowerCaseEmailStr
1919
from models_library.products import ProductName
2020
from pydantic import TypeAdapter
21-
from pytest_mock import MockerFixture
21+
from pytest_mock import MockerFixture, MockType
2222
from pytest_simcore.helpers.typing_env import EnvVarsDict
2323
from servicelib.aiohttp import status
2424
from simcore_postgres_database.models.products import LOGIN_SETTINGS_DEFAULT, products
@@ -214,6 +214,7 @@ async def client(
214214
],
215215
app_routes: RouteTableDef,
216216
mock_env_devel_environment: EnvVarsDict,
217+
mocked_db_setup_in_setup_security: MockType,
217218
):
218219
app = web.Application()
219220
app.router.add_routes(app_routes)
@@ -227,7 +228,9 @@ async def client(
227228
return_value=session_settings,
228229
)
229230

231+
assert not mocked_db_setup_in_setup_security.called
230232
setup_security(app)
233+
assert mocked_db_setup_in_setup_security.called
231234

232235
# mocks 'setup_products': patch to avoid database
233236
set_products_in_app_state(app, app_products)

0 commit comments

Comments
 (0)