@@ -420,6 +420,7 @@ def gpu_model_car_inference_service(
420420
421421# Kueue Fixtures
422422def _is_kueue_operator_installed (admin_client : DynamicClient ) -> bool :
423+ """Check if the Kueue operator is installed and ready."""
423424 try :
424425 csvs = list (
425426 ClusterServiceVersion .get (
@@ -440,14 +441,17 @@ def _is_kueue_operator_installed(admin_client: DynamicClient) -> bool:
440441def ensure_kueue_unmanaged_in_dsc (
441442 admin_client : DynamicClient , dsc_resource : DataScienceCluster
442443) -> Generator [None , Any , None ]:
444+ """Set DSC Kueue to Unmanaged and wait for CRDs to be available."""
443445 try :
444446 if not _is_kueue_operator_installed (admin_client ):
445447 pytest .skip ("Kueue operator is not installed, skipping Kueue tests" )
446448
447449 dsc_resource .get ()
448450 kueue_management_state = dsc_resource .instance .spec .components [DscComponents .KUEUE ].managementState
449451
452+ # ExitStack ensures cleanup runs on teardown or on error
450453 with ExitStack () as stack :
454+ # Patch DSC if needed; ResourceEditor restores original value when exiting the stack
451455 if kueue_management_state != DscComponents .ManagementState .UNMANAGED :
452456 LOGGER .info (f"Updating Kueue from { kueue_management_state } to Unmanaged" )
453457 dsc_dict = {
@@ -458,6 +462,7 @@ def ensure_kueue_unmanaged_in_dsc(
458462 stack .enter_context (ResourceEditor (patches = {dsc_resource : dsc_dict }))
459463 dsc_resource .wait_for_condition (condition = "Ready" , status = "True" , timeout = 300 )
460464
465+ # Wait for CRDs before yielding to tests
461466 wait_for_kueue_crds_available (client = admin_client )
462467 yield
463468
0 commit comments