4
4
from databricks .labs .blueprint .tui import MockPrompts
5
5
from databricks .sdk import AccountClient
6
6
from databricks .sdk .retries import retried
7
- from databricks .sdk .service .iam import Group
7
+ from databricks .sdk .service .iam import Group , User
8
8
9
9
from databricks .labs .ucx .account .workspaces import AccountWorkspaces
10
10
@@ -70,24 +70,31 @@ def test_create_account_level_groups_nested_groups(
70
70
make_group , make_user , acc , ws , make_random , clean_account_level_groups , watchdog_purge_suffix , runtime_ctx , caplog
71
71
):
72
72
suffix = f"{ make_random (4 ).lower ()} -{ watchdog_purge_suffix } "
73
- regular_group = make_group (
74
- display_name = f"created_by_ucx_regular_group1-{ suffix } " , members = [make_user ().id , make_user ().id ]
73
+ # Test groups:
74
+ # group_a (group_b, group_c)
75
+ # group_b (user1, user2, group_d)
76
+ # group_c (group_d)
77
+ # group_d (user3, user4)
78
+
79
+ users = list [User ]()
80
+ for i in range (4 ):
81
+ users .append (make_user ())
82
+
83
+ group_d = make_group (
84
+ display_name = f"created_by_ucx_regular_group_d-{ suffix } " , members = [users [2 ].id , users [3 ].id ]
75
85
)
76
- make_group (
77
- display_name = f"created_by_ucx_regular_group_standalone -{ suffix } " , members = [make_user (). id , make_user () .id ]
86
+ group_c = make_group (
87
+ display_name = f"created_by_ucx_regular_group_c -{ suffix } " , members = [group_d .id ]
78
88
)
79
-
80
- group_display_name = f"created_by_ucx_nested_group1-{ suffix } "
81
- nested_group = make_group (display_name = group_display_name , members = [make_user ().id , regular_group .id ])
82
- AccountWorkspaces (acc , [ws .get_workspace_id ()]).create_account_level_groups (MockPrompts ({}))
83
- regular_group2 = make_group (
84
- display_name = f"created_by_ucx_regular_group2-{ suffix } " , members = [make_user ().id , make_user ().id ]
89
+ group_b = make_group (
90
+ display_name = f"created_by_ucx_regular_group_b-{ suffix } " , members = [users [0 ].id , users [1 ].id , group_d .id ]
85
91
)
86
- make_group (
87
- display_name = f"created_by_ucx_nested_group2-{ suffix } " ,
88
- members = [make_user ().id , regular_group .id , regular_group2 .id ],
92
+ group_a = make_group (
93
+ display_name = f"created_by_ucx_regular_group_a-{ suffix } " , members = [group_b .id , group_c .id ]
89
94
)
90
95
96
+ ws_groups = [group_a , group_b , group_c , group_d ]
97
+
91
98
AccountWorkspaces (acc , [ws .get_workspace_id ()]).create_account_level_groups (MockPrompts ({}))
92
99
93
100
@retried (on = [KeyError ], timeout = timedelta (minutes = 2 ))
@@ -97,9 +104,12 @@ def get_group(display_name: str) -> Group:
97
104
return grp
98
105
raise KeyError (f"Group not found { display_name } " )
99
106
100
- group = get_group (group_display_name )
101
- assert group
102
- assert len (group .members ) == len (nested_group .members )
107
+
108
+ for ws_group in ws_groups :
109
+ group_display_name = ws_group .display_name
110
+ group = get_group (group_display_name )
111
+ assert group
112
+ assert len (group .members ) == len (ws_group .members )
103
113
104
114
runtime_ctx .group_manager .validate_group_membership ()
105
115
0 commit comments