From 193f16d81f3638ac2d6522314429db4433648ca3 Mon Sep 17 00:00:00 2001 From: John Davis Date: Wed, 17 Apr 2024 13:59:42 -0400 Subject: [PATCH] Move+test get_roles_by_ids --- lib/galaxy/managers/groups.py | 2 +- lib/galaxy/managers/roles.py | 6 ------ lib/galaxy/model/db/role.py | 6 ++++++ test/unit/data/db/test_role.py | 11 +++++++++++ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/galaxy/managers/groups.py b/lib/galaxy/managers/groups.py index 341226e86703..a32c5f15440a 100644 --- a/lib/galaxy/managers/groups.py +++ b/lib/galaxy/managers/groups.py @@ -11,9 +11,9 @@ RequestParameterInvalidException, ) from galaxy.managers.context import ProvidesAppContext -from galaxy.managers.roles import get_roles_by_ids from galaxy.model import Group from galaxy.model.base import transaction +from galaxy.model.db.role import get_roles_by_ids from galaxy.model.db.user import get_users_by_ids from galaxy.model.scoped_session import galaxy_scoped_session from galaxy.schema.fields import Security diff --git a/lib/galaxy/managers/roles.py b/lib/galaxy/managers/roles.py index 1f8ef428b101..8864f8900e16 100644 --- a/lib/galaxy/managers/roles.py +++ b/lib/galaxy/managers/roles.py @@ -26,7 +26,6 @@ from galaxy.managers.context import ProvidesUserContext from galaxy.model import Role from galaxy.model.base import transaction -from galaxy.model.scoped_session import galaxy_scoped_session from galaxy.schema.schema import RoleDefinitionModel from galaxy.util import unicodify @@ -162,8 +161,3 @@ def undelete(self, trans: ProvidesUserContext, role: model.Role) -> model.Role: with transaction(trans.sa_session): trans.sa_session.commit() return role - - -def get_roles_by_ids(session: galaxy_scoped_session, role_ids): - stmt = select(Role).where(Role.id.in_(role_ids)) - return session.scalars(stmt).all() diff --git a/lib/galaxy/model/db/role.py b/lib/galaxy/model/db/role.py index baa929c38d71..46df076ea813 100644 --- a/lib/galaxy/model/db/role.py +++ b/lib/galaxy/model/db/role.py @@ -8,6 +8,7 @@ Role, UserRoleAssociation, ) +from galaxy.model.scoped_session import galaxy_scoped_session def get_npns_roles(session): @@ -35,3 +36,8 @@ def get_private_user_role(user, session): .distinct() ) return session.execute(stmt).scalar_one_or_none() + + +def get_roles_by_ids(session: galaxy_scoped_session, role_ids): + stmt = select(Role).where(Role.id.in_(role_ids)) + return session.scalars(stmt).all() diff --git a/test/unit/data/db/test_role.py b/test/unit/data/db/test_role.py index 4d87f5db9a30..59daf8a5a8ea 100644 --- a/test/unit/data/db/test_role.py +++ b/test/unit/data/db/test_role.py @@ -2,6 +2,7 @@ from galaxy.model.db.role import ( get_npns_roles, get_private_user_role, + get_roles_by_ids, ) from . import verify_items @@ -31,3 +32,13 @@ def test_get_private_user_role(session, make_user, make_role, make_user_role_ass role = get_private_user_role(u1, session) assert role is r1 + + +def test_get_roles_by_ids(session, make_role): + roles = [make_role() for _ in range(10)] # create roles + r1, r2, r3 = roles[0], roles[3], roles[7] # select some random roles + ids = [r1.id, r2.id, r3.id] + + roles2 = get_roles_by_ids(session, ids) + expected = [r1, r2, r3] + verify_items(roles2, expected)