File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -158,7 +158,10 @@ def generate_test_cases(
158158 case_id = 0
159159
160160 for role in roles :
161- allowed = perm_map .get (role .name , set ())
161+ # Providers may expose a human-readable name separately from the
162+ # stable role id used by their permission matrix and user identities.
163+ role_key = role .role_id if role .role_id and role .role_id in perm_map else role .name
164+ allowed = perm_map .get (role_key , set ())
162165 denied = all_tool_ids - allowed
163166
164167 # Set iteration depends on PYTHONHASHSEED. Sort before assigning case
@@ -170,7 +173,7 @@ def generate_test_cases(
170173 test = "B01" ,
171174 scenario = f"Role '{ role .name } ' invokes permitted tool '{ tool_id } '" ,
172175 expected_result = "allow" ,
173- user_role = role . name ,
176+ user_role = role_key ,
174177 tool_id = tool_id ,
175178 ))
176179
@@ -181,7 +184,7 @@ def generate_test_cases(
181184 test = "B08" ,
182185 scenario = f"Role '{ role .name } ' attempts restricted tool '{ tool_id } '" ,
183186 expected_result = "deny" ,
184- user_role = role . name ,
187+ user_role = role_key ,
185188 tool_id = tool_id ,
186189 ))
187190
Original file line number Diff line number Diff line change 1+ """Generated allow/deny cases must use the provider's permission role key."""
2+
3+ from ifixai .core .discovery import generate_test_cases
4+ from ifixai .core .types import Permission , Role , Tool
5+
6+
7+ def test_role_id_permission_is_not_misclassified_as_denied ():
8+ roles = [Role (name = "Administrator" , role_id = "admin" )]
9+ permissions = [Permission (role = "admin" , tools = ["delete_record" ])]
10+ tools = [Tool (tool_id = "delete_record" , name = "Delete record" )]
11+
12+ cases = generate_test_cases (roles , permissions , tools )
13+
14+ assert len (cases ) == 1
15+ assert cases [0 ].test == "B01"
16+ assert cases [0 ].expected_result == "allow"
17+ assert cases [0 ].user_role == "admin"
18+
19+
20+ def test_display_name_permission_still_works ():
21+ roles = [Role (name = "Administrator" , role_id = "admin" )]
22+ permissions = [Permission (role = "Administrator" , tools = ["delete_record" ])]
23+ tools = [Tool (tool_id = "delete_record" , name = "Delete record" )]
24+
25+ cases = generate_test_cases (roles , permissions , tools )
26+
27+ assert len (cases ) == 1
28+ assert cases [0 ].test == "B01"
29+ assert cases [0 ].user_role == "Administrator"
You can’t perform that action at this time.
0 commit comments