@@ -145,27 +145,26 @@ async def mock_oath2(self, request):
145145@patch (
146146 "feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_namespaced_role_binding"
147147)
148- @patch (
149- "feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_cluster_role_binding"
150- )
151148def test_k8s_token_validation_success (
152- mock_crb ,
153149 mock_rb ,
154150 mock_jwt ,
155151 mock_config ,
156152 rolebindings ,
157- clusterrolebindings ,
153+ monkeypatch ,
154+ my_namespace ,
155+ sa_name ,
156+ sa_namespace ,
158157):
159- sa_name = "my-name"
160- namespace = "my-ns"
161- subject = f"system:serviceaccount:{ namespace } :{ sa_name } "
158+ monkeypatch .setattr (
159+ "feast.permissions.auth.kubernetes_token_parser.KubernetesTokenParser._read_namespace_from_file" ,
160+ lambda self : my_namespace ,
161+ )
162+ subject = f"system:serviceaccount:{ sa_namespace } :{ sa_name } "
162163 mock_jwt .return_value = {"sub" : subject }
163164
164165 mock_rb .return_value = rolebindings ["items" ]
165- mock_crb .return_value = clusterrolebindings ["items" ]
166166
167167 roles = rolebindings ["roles" ]
168- croles = clusterrolebindings ["roles" ]
169168
170169 access_token = "aaa-bbb-ccc"
171170 token_parser = KubernetesTokenParser ()
@@ -175,12 +174,10 @@ def test_k8s_token_validation_success(
175174
176175 assertpy .assert_that (user ).is_type_of (User )
177176 if isinstance (user , User ):
178- assertpy .assert_that (user .username ).is_equal_to (f"{ namespace } :{ sa_name } " )
179- assertpy .assert_that (user .roles .sort ()).is_equal_to (( roles + croles ) .sort ())
177+ assertpy .assert_that (user .username ).is_equal_to (f"{ sa_namespace } :{ sa_name } " )
178+ assertpy .assert_that (user .roles .sort ()).is_equal_to (roles .sort ())
180179 for r in roles :
181180 assertpy .assert_that (user .has_matching_role ([r ])).is_true ()
182- for cr in croles :
183- assertpy .assert_that (user .has_matching_role ([cr ])).is_true ()
184181 assertpy .assert_that (user .has_matching_role (["foo" ])).is_false ()
185182
186183
@@ -212,30 +209,29 @@ def test_k8s_inter_server_comm(
212209 oidc_config ,
213210 request ,
214211 rolebindings ,
215- clusterrolebindings ,
216212 monkeypatch ,
217213):
218214 if is_intra_server :
219215 subject = f":::{ intra_communication_val } "
220216 else :
221217 sa_name = request .getfixturevalue ("sa_name" )
222- namespace = request .getfixturevalue ("namespace" )
223- subject = f"system:serviceaccount:{ namespace } :{ sa_name } "
218+ sa_namespace = request .getfixturevalue ("sa_namespace" )
219+ my_namespace = request .getfixturevalue ("my_namespace" )
220+ subject = f"system:serviceaccount:{ sa_namespace } :{ sa_name } "
224221 rolebindings = request .getfixturevalue ("rolebindings" )
225- clusterrolebindings = request .getfixturevalue ("clusterrolebindings" )
226222
227223 monkeypatch .setattr (
228224 "feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_namespaced_role_binding" ,
229225 lambda * args , ** kwargs : rolebindings ["items" ],
230226 )
231- monkeypatch .setattr (
232- "feast.permissions.auth.kubernetes_token_parser.client.RbacAuthorizationV1Api.list_cluster_role_binding" ,
233- lambda * args , ** kwargs : clusterrolebindings ["items" ],
234- )
235227 monkeypatch .setattr (
236228 "feast.permissions.client.kubernetes_auth_client_manager.KubernetesAuthClientManager.get_token" ,
237229 lambda self : "my-token" ,
238230 )
231+ monkeypatch .setattr (
232+ "feast.permissions.auth.kubernetes_token_parser.KubernetesTokenParser._read_namespace_from_file" ,
233+ lambda self : my_namespace ,
234+ )
239235
240236 monkeypatch .setattr (
241237 "feast.permissions.auth.kubernetes_token_parser.config.load_incluster_config" ,
@@ -248,7 +244,6 @@ def test_k8s_inter_server_comm(
248244 )
249245
250246 roles = rolebindings ["roles" ]
251- croles = clusterrolebindings ["roles" ]
252247
253248 access_token = "aaa-bbb-ccc"
254249 token_parser = KubernetesTokenParser ()
@@ -263,10 +258,8 @@ def test_k8s_inter_server_comm(
263258 else :
264259 assertpy .assert_that (user ).is_type_of (User )
265260 if isinstance (user , User ):
266- assertpy .assert_that (user .username ).is_equal_to (f"{ namespace } :{ sa_name } " )
267- assertpy .assert_that (user .roles .sort ()).is_equal_to (( roles + croles ) .sort ())
261+ assertpy .assert_that (user .username ).is_equal_to (f"{ sa_namespace } :{ sa_name } " )
262+ assertpy .assert_that (user .roles .sort ()).is_equal_to (roles .sort ())
268263 for r in roles :
269264 assertpy .assert_that (user .has_matching_role ([r ])).is_true ()
270- for cr in croles :
271- assertpy .assert_that (user .has_matching_role ([cr ])).is_true ()
272265 assertpy .assert_that (user .has_matching_role (["foo" ])).is_false ()
0 commit comments