Github user ifilonenko commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22760#discussion_r230951222
  
    --- Diff: 
resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/features/KubernetesFeaturesTestUtils.scala
 ---
    @@ -63,4 +63,66 @@ object KubernetesFeaturesTestUtils {
       def containerHasEnvVar(container: Container, envVarName: String): 
Boolean = {
         container.getEnv.asScala.exists(envVar => envVar.getName == envVarName)
       }
    +
    +  def containerHasEnvVars(container: Container, envs: Map[String, 
String]): Unit = {
    +    assertHelper[Set[(String, String)]](envs.toSet,
    +      container.getEnv.asScala
    +        .map { e => (e.getName, e.getValue) }.toSet,
    +      subsetOfTup[Set[(String, String)], String], "a subset of")
    +  }
    +
    +  def containerHasVolumeMounts(container: Container, vms: Map[String, 
String]): Unit = {
    +    assertHelper[Set[(String, String)]](vms.toSet,
    +      container.getVolumeMounts.asScala
    +        .map { vm => (vm.getName, vm.getMountPath) }.toSet,
    +      subsetOfTup[Set[(String, String)], String], "a subset of")
    +  }
    +
    +  def podHasLabels(pod: Pod, labels: Map[String, String]): Unit = {
    +    assertHelper[Set[(String, String)]](labels.toSet, 
pod.getMetadata.getLabels.asScala.toSet,
    +      subsetOfTup[Set[(String, String)], String], "a subset of")
    +  }
    +
    +  def podHasVolumes(pod: Pod, volumes: Seq[Volume]): Unit = {
    +    assertHelper[Set[Volume]](volumes.toSet, 
pod.getSpec.getVolumes.asScala.toSet,
    +      subsetOfElem[Set[Volume], Volume], "a subset of")
    +  }
    +
    +  // Mocking bootstrapHadoopConfDir
    +  def hadoopConfBootPod(inputPod: SparkPod): SparkPod =
    +    SparkPod(
    +      new PodBuilder(inputPod.pod)
    +        .editOrNewMetadata()
    +          .addToLabels("bootstrap-hconf", "true")
    +          .endMetadata()
    +        .build(),
    +      inputPod.container)
    +
    +  // Mocking bootstrapKerberosPod
    +  def krbBootPod(inputPod: SparkPod): SparkPod =
    +    SparkPod(
    +      new PodBuilder(inputPod.pod)
    +        .editOrNewMetadata()
    +          .addToLabels("bootstrap-kerberos", "true")
    +          .endMetadata()
    +        .build(),
    +      inputPod.container)
    +
    +  // Mocking bootstrapSparkUserPod
    +  def userBootPod(inputPod: SparkPod): SparkPod =
    +    SparkPod(
    +      new PodBuilder(inputPod.pod)
    +        .editOrNewMetadata()
    +          .addToLabels("bootstrap-user", "true")
    +          .endMetadata()
    +        .build(),
    +      inputPod.container)
    +
    +  def subsetOfElem[T <: Set[B], B <: Any]: (T, T) => Boolean = (a, b) => 
a.subsetOf(b)
    +  def subsetOfTup[T <: Set[(B, B)], B <: Any]: (T, T) => Boolean = (a, b) 
=> a.subsetOf(b)
    +
    +  def assertHelper[T](con1: T, con2: T,
    +      expr: (T, T) => Boolean = (a: T, b: T) => a == b, exprMsg: String = 
"equal to"): Unit = {
    +    assert(expr(con1, con2), s"$con1 is not $exprMsg $con2 as expected")
    --- End diff --
    
    I thought it would be better than doing a custom string at every assert 
statement. I don't find it to be too awkward, but *shrug* :) I actually kind of 
like it since we could do a check with any expression


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to