Skip to content

Commit 9b3ef90

Browse files
committed
refactor: update user injection methods to use new lifespan helpers
1 parent 98d92af commit 9b3ef90

File tree

6 files changed

+40
-47
lines changed

6 files changed

+40
-47
lines changed

packages/notifications-library/tests/with_db/conftest.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@
1616
from models_library.users import UserID
1717
from notifications_library._templates import get_default_named_templates
1818
from pydantic import validate_call
19+
from pytest_simcore.helpers.postgres_tools import insert_and_get_row_lifespan
20+
from pytest_simcore.helpers.postgres_users import (
21+
insert_and_get_user_and_secrets_lifespan,
22+
)
1923
from simcore_postgres_database.models.jinja2_templates import jinja2_templates
2024
from simcore_postgres_database.models.payments_transactions import payments_transactions
2125
from simcore_postgres_database.models.products import products
2226
from simcore_postgres_database.models.products_to_templates import products_to_templates
23-
from simcore_postgres_database.models.users import users
2427
from sqlalchemy.engine.row import Row
2528
from sqlalchemy.ext.asyncio.engine import AsyncEngine
2629

@@ -50,16 +53,11 @@ async def user(
5053
and injects a user in db
5154
"""
5255
assert user_id == user["id"]
53-
pk_args = users.c.id, user["id"]
54-
55-
# NOTE: creation of primary group and setting `groupid`` is automatically triggered after creation of user by postgres
56-
async with sqlalchemy_async_engine.begin() as conn:
57-
row: Row = await _insert_and_get_row(conn, users, user, *pk_args)
58-
59-
yield row._asdict()
60-
61-
async with sqlalchemy_async_engine.begin() as conn:
62-
await _delete_row(conn, users, *pk_args)
56+
async with insert_and_get_user_and_secrets_lifespan( # pylint:disable=contextmanager-generator-missing-cleanup
57+
sqlalchemy_async_engine,
58+
**user,
59+
) as row:
60+
yield row
6361

6462

6563
@pytest.fixture
@@ -82,15 +80,14 @@ async def product(
8280
# NOTE: osparc product is already in db. This is another product
8381
assert product["name"] != "osparc"
8482

85-
pk_args = products.c.name, product["name"]
86-
87-
async with sqlalchemy_async_engine.begin() as conn:
88-
row: Row = await _insert_and_get_row(conn, products, product, *pk_args)
89-
90-
yield row._asdict()
91-
92-
async with sqlalchemy_async_engine.begin() as conn:
93-
await _delete_row(conn, products, *pk_args)
83+
async with insert_and_get_row_lifespan( # pylint:disable=contextmanager-generator-missing-cleanup
84+
sqlalchemy_async_engine,
85+
table=products,
86+
values=product,
87+
pk_col=products.c.name,
88+
pk_value=product["name"],
89+
) as row:
90+
yield row
9491

9592

9693
@pytest.fixture

services/director-v2/src/simcore_service_director_v2/modules/db/repositories/users.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from typing import cast
2+
13
from models_library.users import UserID
24
from pydantic import EmailStr, TypeAdapter
35
from simcore_postgres_database.models.users import UserRole
@@ -15,4 +17,4 @@ async def get_user_email(self, user_id: UserID) -> EmailStr:
1517
return TypeAdapter(EmailStr).validate_python(email)
1618

1719
async def get_user_role(self, user_id: UserID) -> UserRole:
18-
return await self._repo().get_role(user_id=user_id)
20+
return cast(UserRole, await self._repo().get_role(user_id=user_id))

services/dynamic-scheduler/tests/unit/test_repository_postgres_networks.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
PostgresTestConfig,
1818
insert_and_get_row_lifespan,
1919
)
20+
from pytest_simcore.helpers.postgres_users import (
21+
insert_and_get_user_and_secrets_lifespan,
22+
)
2023
from pytest_simcore.helpers.typing_env import EnvVarsDict
2124
from simcore_postgres_database.models.projects import projects
22-
from simcore_postgres_database.models.users import users
2325
from simcore_service_dynamic_scheduler.repository.events import (
2426
get_project_networks_repo,
2527
)
@@ -77,17 +79,14 @@ async def user_in_db(
7779
user_id: UserID,
7880
) -> AsyncIterator[dict[str, Any]]:
7981
"""
80-
injects a user in db
82+
injects a user + secrets in db
8183
"""
8284
assert user_id == user["id"]
83-
async with insert_and_get_row_lifespan(
85+
async with insert_and_get_user_and_secrets_lifespan(
8486
engine,
85-
table=users,
86-
values=user,
87-
pk_col=users.c.id,
88-
pk_value=user["id"],
89-
) as row:
90-
yield row
87+
**user,
88+
) as user_row:
89+
yield user_row
9190

9291

9392
@pytest.fixture

services/efs-guardian/tests/unit/test_efs_removal_policy_task.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
from models_library.users import UserID
1818
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
1919
from pytest_simcore.helpers.postgres_tools import insert_and_get_row_lifespan
20+
from pytest_simcore.helpers.postgres_users import (
21+
insert_and_get_user_and_secrets_lifespan,
22+
)
2023
from pytest_simcore.helpers.typing_env import EnvVarsDict
2124
from simcore_postgres_database.models.projects import projects
22-
from simcore_postgres_database.models.users import users
2325
from simcore_postgres_database.utils_repos import transaction_context
2426
from simcore_service_efs_guardian.core.settings import (
2527
ApplicationSettings,
@@ -71,12 +73,9 @@ async def user_in_db(
7173
injects a user in db
7274
"""
7375
assert user_id == user["id"]
74-
async with insert_and_get_row_lifespan( # pylint:disable=contextmanager-generator-missing-cleanup
76+
async with insert_and_get_user_and_secrets_lifespan( # pylint:disable=contextmanager-generator-missing-cleanup
7577
app.state.engine,
76-
table=users,
77-
values=user,
78-
pk_col=users.c.id,
79-
pk_value=user["id"],
78+
**user,
8079
) as row:
8180
yield row
8281

services/payments/tests/unit/test_db_payments_users_repo.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
from models_library.users import UserID
1515
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
1616
from pytest_simcore.helpers.postgres_tools import insert_and_get_row_lifespan
17+
from pytest_simcore.helpers.postgres_users import (
18+
insert_and_get_user_and_secrets_lifespan,
19+
)
1720
from pytest_simcore.helpers.typing_env import EnvVarsDict
1821
from simcore_postgres_database.models.payments_transactions import payments_transactions
1922
from simcore_postgres_database.models.products import products
20-
from simcore_postgres_database.models.users import users
2123
from simcore_service_payments.db.payment_users_repo import PaymentsUsersRepo
2224
from simcore_service_payments.services.postgres import get_engine
2325

@@ -60,14 +62,10 @@ async def user(
6062
injects a user in db
6163
"""
6264
assert user_id == user["id"]
63-
async with insert_and_get_row_lifespan( # pylint:disable=contextmanager-generator-missing-cleanup
64-
get_engine(app),
65-
table=users,
66-
values=user,
67-
pk_col=users.c.id,
68-
pk_value=user["id"],
69-
) as row:
70-
yield row
65+
async with insert_and_get_user_and_secrets_lifespan( # pylint:disable=contextmanager-generator-missing-cleanup
66+
get_engine(app), **user
67+
) as user_row:
68+
yield user_row
7169

7270

7371
@pytest.fixture

services/web/server/src/simcore_service_webserver/studies_dispatcher/_users.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
from ..garbage_collector.settings import GUEST_USER_RC_LOCK_FORMAT
3333
from ..groups import api as groups_service
3434
from ..login._login_service import GUEST
35-
from ..login.login_repository_legacy import AsyncpgStorage, get_plugin_storage
3635
from ..products import products_web
3736
from ..redis import get_redis_lock_manager_client
3837
from ..security import security_service, security_web
@@ -99,7 +98,6 @@ async def create_temporary_guest_user(request: web.Request):
9998
MaxGuestUsersError: No more guest users allowed
10099
101100
"""
102-
db: AsyncpgStorage = get_plugin_storage(request.app)
103101
redis_locks_client: aioredis.Redis = get_redis_lock_manager_client(request.app)
104102
settings: StudiesDispatcherSettings = get_plugin_settings(app=request.app)
105103
product_name = products_web.get_product_name(request)

0 commit comments

Comments
 (0)