@@ -222,6 +222,21 @@ func testAccPreCheckInternal(t *testing.T) {
222222 return
223223}
224224
225+ // testAccPreCheckInternal_setEnv is used for internal testing where
226+ // specific environment variables are needed to configure the provider.
227+ func testAccPreCheckInternal_setEnv (t * testing.T , envVars map [string ]string ) {
228+ ctx := context .TODO ()
229+ unsetEnv (t )
230+ for k , v := range envVars {
231+ os .Setenv (k , v )
232+ }
233+ diags := testAccProvider .Configure (ctx , terraform .NewResourceConfigRaw (nil ))
234+ if diags .HasError () {
235+ t .Fatal (diags [0 ].Summary )
236+ }
237+ return
238+ }
239+
225240func getClusterVersion () (* gversion.Version , error ) {
226241 meta := testAccProvider .Meta ()
227242
@@ -483,43 +498,54 @@ func TestAccKubernetesProvider_config_path(t *testing.T) {
483498}
484499
485500func TestAccKubernetesProvider_config_paths (t * testing.T ) {
486- wantError := `"config_path": conflicts with config_paths`
487-
488501 resource .Test (t , resource.TestCase {
489- // Unset env vars to prevent them from being used in the test.
490502 PreCheck : func () { testAccPreCheckInternal (t ) },
491503 ProviderFactories : testAccProviderFactoriesInternal ,
492504 Steps : []resource.TestStep {
493505 {
494506 Config : testAccKubernetesProviderConfig (
495- providerConfig_config_paths (`["./testdata/kubeconfig ", "./testdata/kubeconfig"]` ),
507+ providerConfig_config_paths (`["./missing/file ", "./testdata/kubeconfig"]` ),
496508 ),
497- Check : resource .TestCheckResourceAttr ("data.kubernetes_namespace.test" , "metadata.0.name" , "default" ),
509+ Check : resource .TestCheckResourceAttr ("data.kubernetes_namespace.test" , "metadata.0.name" , "default" ),
510+ ExpectError : regexp .MustCompile ("could not open kubeconfig" ),
498511 },
499512 {
500513 Config : testAccKubernetesProviderConfig (
501514 providerConfig_config_path ("./internal/testdata/kubeconfig" ) +
502515 providerConfig_config_paths (`["./testdata/kubeconfig", "./testdata/kubeconfig"]` ),
503516 ),
504- ExpectError : regexp .MustCompile (wantError ),
517+ ExpectError : regexp .MustCompile (`"config_path": conflicts with config_paths` ),
518+ },
519+ {
520+ Config : testAccKubernetesProviderConfig (
521+ providerConfig_config_paths (`["./testdata/kubeconfig", "./testdata/kubeconfig"]` ),
522+ ),
523+ Check : resource .TestCheckResourceAttr ("data.kubernetes_namespace.test" , "metadata.0.name" , "default" ),
505524 },
506525 },
507526 })
508527}
509528
510529func TestAccKubernetesProvider_config_paths_env (t * testing.T ) {
511- os .Setenv ("KUBE_CONFIG_PATHS" , strings .Join ([]string {
512- "./testdata/kubeconfig" ,
513- "./testdata/kubeconfig" ,
514- }, string (os .PathListSeparator )))
515530
516531 resource .Test (t , resource.TestCase {
517- PreCheck : func () { testAccPreCheckInternal (t ) },
532+ PreCheck : func () {
533+ testAccPreCheckInternal_setEnv (t , map [string ]string {
534+ "KUBE_CONFIG_PATHS" : strings .Join ([]string {
535+ "./testdata/kubeconfig" ,
536+ "./testdata/kubeconfig" ,
537+ }, string (os .PathListSeparator )),
538+ })
539+ },
518540 ProviderFactories : testAccProviderFactoriesInternal ,
519541 Steps : []resource.TestStep {
520542 {
521- Config : testAccKubernetesProviderConfig ("# empty" ),
522- Check : resource .TestCheckResourceAttr ("data.kubernetes_namespace.test" , "metadata.0.name" , "default" ),
543+ Config : testAccKubernetesProviderConfig ("# empty" ),
544+ PlanOnly : true ,
545+ },
546+ {
547+ Config : testAccKubernetesProviderConfig ("# empty" ),
548+ PlanOnly : true ,
523549 },
524550 },
525551 })
@@ -528,15 +554,15 @@ func TestAccKubernetesProvider_config_paths_env(t *testing.T) {
528554func TestAccKubernetesProvider_config_paths_env_wantError (t * testing.T ) {
529555 wantError := `"config_path": conflicts with config_paths`
530556
531- unsetEnv (t )
532- os .Setenv ("KUBE_CONFIG_PATHS" , strings .Join ([]string {
533- "testdata/kubeconfig" ,
534- "testdata/kubeconfig" ,
535- }, string (os .PathListSeparator )))
536-
537- os .Setenv ("KUBE_CONFIG_PATH" , "testdata/kubeconfig" )
538557 resource .Test (t , resource.TestCase {
539- PreCheck : func () { testAccPreCheckInternal (t ) },
558+ PreCheck : func () {
559+ testAccPreCheckInternal_setEnv (t , map [string ]string {
560+ "KUBE_CONFIG_PATHS" : strings .Join ([]string {
561+ "./testdata/kubeconfig" ,
562+ "./testdata/kubeconfig" ,
563+ }, string (os .PathListSeparator )),
564+ })
565+ },
540566 ProviderFactories : testAccProviderFactoriesInternal ,
541567 Steps : []resource.TestStep {
542568 {
@@ -554,11 +580,11 @@ func testAccKubernetesProviderConfig(providerConfig string) string {
554580 %s
555581}
556582
557- data kubernetes_namespace "test" {
558- metadata {
559- name = "default"
560- }
561- }
583+ # data kubernetes_namespace "test" {
584+ # metadata {
585+ # name = "default"
586+ # }
587+ # }
562588` , providerConfig )
563589}
564590
0 commit comments