Skip to content

Commit

Permalink
Move+test get_roles_by_ids
Browse files Browse the repository at this point in the history
  • Loading branch information
jdavcs committed May 14, 2024
1 parent aff85e7 commit 193f16d
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 7 deletions.
2 changes: 1 addition & 1 deletion lib/galaxy/managers/groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 0 additions & 6 deletions lib/galaxy/managers/roles.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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()
6 changes: 6 additions & 0 deletions lib/galaxy/model/db/role.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
Role,
UserRoleAssociation,
)
from galaxy.model.scoped_session import galaxy_scoped_session


def get_npns_roles(session):
Expand Down Expand Up @@ -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()
11 changes: 11 additions & 0 deletions test/unit/data/db/test_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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)

0 comments on commit 193f16d

Please sign in to comment.