@@ -1058,6 +1058,49 @@ func TestBuildResourcePodTemplate(t *testing.T) {
10581058 assert .Equal (t , dummySparkConf ["spark.executor.memory" ], * sparkApp .Spec .Executor .Memory )
10591059}
10601060
1061+ func TestBuildResourcePriorityClassName (t * testing.T ) {
1062+ defaultConfig := defaultPluginConfig ()
1063+ assert .NoError (t , config .SetK8sPluginConfig (defaultConfig ))
1064+
1065+ const priorityClassName = "high-priority"
1066+ podSpec := dummyPodSpec ()
1067+ podSpec .PriorityClassName = priorityClassName
1068+ taskTemplate := dummySparkTaskTemplatePod ("blah-1" , dummySparkConf , podSpec )
1069+
1070+ sparkResourceHandler := sparkResourceHandler {}
1071+ taskCtx := dummySparkTaskContext (taskTemplate , true , k8s.PluginState {})
1072+ resource , err := sparkResourceHandler .BuildResource (context .TODO (), taskCtx )
1073+
1074+ assert .Nil (t , err )
1075+ assert .NotNil (t , resource )
1076+ sparkApp , ok := resource .(* sparkOp.SparkApplication )
1077+ assert .True (t , ok )
1078+
1079+ assert .NotNil (t , sparkApp .Spec .Driver .PriorityClassName )
1080+ assert .Equal (t , priorityClassName , * sparkApp .Spec .Driver .PriorityClassName )
1081+ assert .NotNil (t , sparkApp .Spec .Executor .PriorityClassName )
1082+ assert .Equal (t , priorityClassName , * sparkApp .Spec .Executor .PriorityClassName )
1083+ }
1084+
1085+ func TestBuildResourceNoPriorityClassName (t * testing.T ) {
1086+ defaultConfig := defaultPluginConfig ()
1087+ assert .NoError (t , config .SetK8sPluginConfig (defaultConfig ))
1088+
1089+ taskTemplate := dummySparkTaskTemplateContainer ("blah-1" , dummySparkConf )
1090+ sparkResourceHandler := sparkResourceHandler {}
1091+ taskCtx := dummySparkTaskContext (taskTemplate , true , k8s.PluginState {})
1092+ resource , err := sparkResourceHandler .BuildResource (context .TODO (), taskCtx )
1093+
1094+ assert .Nil (t , err )
1095+ assert .NotNil (t , resource )
1096+ sparkApp , ok := resource .(* sparkOp.SparkApplication )
1097+ assert .True (t , ok )
1098+
1099+ // When no priority class is set, the field should be left unset (nil) rather than an empty string.
1100+ assert .Nil (t , sparkApp .Spec .Driver .PriorityClassName )
1101+ assert .Nil (t , sparkApp .Spec .Executor .PriorityClassName )
1102+ }
1103+
10611104func TestGetPropertiesSpark (t * testing.T ) {
10621105 sparkResourceHandler := sparkResourceHandler {}
10631106 expected := k8s.PluginProperties {}
0 commit comments