@@ -493,6 +493,47 @@ def test_get_user(test_client, test_db_session, as_admin_user, galaxy_platform,
493493 assert isinstance (response_data ["group_memberships" ], list )
494494
495495
496+ def test_get_user_returns_nested_membership_attributes_from_db_instance (
497+ test_client ,
498+ test_db_session ,
499+ as_admin_user ,
500+ galaxy_platform ,
501+ tsi_group ,
502+ persistent_factories ,
503+ ):
504+ db_user = BiocommonsUserFactory .create_sync (group_memberships = [], platform_memberships = [])
505+ PlatformMembershipFactory .create_sync (
506+ user = db_user ,
507+ platform = galaxy_platform ,
508+ approval_status = ApprovalStatusEnum .APPROVED ,
509+ updated_by = as_admin_user ,
510+ )
511+ GroupMembershipFactory .create_sync (
512+ user = db_user ,
513+ group = tsi_group ,
514+ approval_status = ApprovalStatusEnum .APPROVED ,
515+ updated_by = as_admin_user ,
516+ )
517+ test_db_session .commit ()
518+ test_db_session .expire_all ()
519+
520+ resp = test_client .get (f"/admin/users/{ db_user .id } " )
521+
522+ assert resp .status_code == 200
523+ data = resp .json ()
524+
525+ platform_membership = data ["platform_memberships" ][0 ]
526+ assert platform_membership ["platform_id" ] == galaxy_platform .id
527+ assert platform_membership ["platform_name" ] == galaxy_platform .name
528+ assert platform_membership ["updated_by" ] == as_admin_user .email
529+
530+ group_membership = data ["group_memberships" ][0 ]
531+ assert group_membership ["group_id" ] == tsi_group .group_id
532+ assert group_membership ["group_name" ] == tsi_group .name
533+ assert group_membership ["group_short_name" ] == tsi_group .short_name
534+ assert group_membership ["updated_by" ] == as_admin_user .email
535+
536+
496537def test_get_user_forbidden_without_admin_role (test_client , test_db_session , as_admin_user , persistent_factories ):
497538 # Create user with platform membership that admin can't access
498539 platform = PlatformFactory .create_sync (id = PlatformEnum .BPA_DATA_PORTAL )
0 commit comments