Skip to content

Commit d079d56

Browse files
authored
Merge pull request #1214 from cvvz/ut
chore: fix ut
2 parents 1499883 + 23d0570 commit d079d56

File tree

1 file changed

+29
-36
lines changed

1 file changed

+29
-36
lines changed

pkg/blob/azure_test.go

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,17 @@ import (
2121
"fmt"
2222
"os"
2323
"reflect"
24+
"runtime"
2425
"strings"
26+
"syscall"
2527
"testing"
2628

2729
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2022-07-01/network"
2830
"github.com/Azure/azure-sdk-for-go/storage"
29-
"go.uber.org/mock/gomock"
30-
3131
"github.com/Azure/go-autorest/autorest/azure"
3232
"github.com/stretchr/testify/assert"
33+
"go.uber.org/mock/gomock"
34+
"k8s.io/client-go/kubernetes"
3335

3436
"sigs.k8s.io/blob-csi-driver/pkg/util"
3537
"sigs.k8s.io/cloud-provider-azure/pkg/azureclients/subnetclient/mocksubnetclient"
@@ -61,12 +63,7 @@ kind: Config
6163
users:
6264
- name: foo-user
6365
user:
64-
exec:
65-
apiVersion: client.authentication.k8s.io/v1alpha1
66-
args:
67-
- arg-1
68-
- arg-2
69-
command: foo-command
66+
token: 2fef7f7c64127579b48d61434c44ad46d87793169ee6a4199af3ce16a3cf5be3371
7067
`
7168

7269
err := createTestFile(emptyKubeConfig)
@@ -90,35 +87,25 @@ users:
9087
expectedErr error
9188
}{
9289
{
93-
desc: "out of cluster, no kubeconfig, no credential file",
94-
kubeconfig: "",
90+
desc: "[success] out of cluster, no kubeconfig, no credential file",
9591
nodeID: "",
9692
allowEmptyCloudConfig: true,
9793
expectedErr: nil,
9894
},
9995
{
100-
desc: "[failure][disallowEmptyCloudConfig] out of cluster, no kubeconfig, no credential file",
101-
kubeconfig: "",
96+
desc: "[linux][failure][disallowEmptyCloudConfig] out of cluster, no kubeconfig, no credential file",
10297
nodeID: "",
10398
allowEmptyCloudConfig: false,
104-
expectedErr: nil,
99+
expectedErr: syscall.ENOENT,
105100
},
106101
{
107-
desc: "[failure] out of cluster & in cluster, specify a non-exist kubeconfig, no credential file",
108-
kubeconfig: "/tmp/non-exist.json",
102+
desc: "[windows][failure][disallowEmptyCloudConfig] out of cluster, no kubeconfig, no credential file",
109103
nodeID: "",
110-
allowEmptyCloudConfig: true,
111-
expectedErr: nil,
112-
},
113-
{
114-
desc: "[failure] out of cluster & in cluster, specify a empty kubeconfig, no credential file",
115-
kubeconfig: emptyKubeConfig,
116-
nodeID: "",
117-
allowEmptyCloudConfig: true,
118-
expectedErr: fmt.Errorf("invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable"),
104+
allowEmptyCloudConfig: false,
105+
expectedErr: syscall.ENOTDIR,
119106
},
120107
{
121-
desc: "[failure] out of cluster & in cluster, specify a fake kubeconfig, no credential file",
108+
desc: "[success] out of cluster & in cluster, specify a fake kubeconfig, no credential file",
122109
createFakeKubeConfig: true,
123110
kubeconfig: fakeKubeConfig,
124111
nodeID: "",
@@ -128,15 +115,21 @@ users:
128115
{
129116
desc: "[success] out of cluster & in cluster, no kubeconfig, a fake credential file",
130117
createFakeCredFile: true,
131-
kubeconfig: "",
132118
nodeID: "",
133119
userAgent: "useragent",
134120
allowEmptyCloudConfig: true,
135121
expectedErr: nil,
136122
},
137123
}
138124

125+
var kubeClient kubernetes.Interface
139126
for _, test := range tests {
127+
if strings.HasPrefix(test.desc, "[linux]") && runtime.GOOS != "linux" {
128+
continue
129+
}
130+
if strings.HasPrefix(test.desc, "[windows]") && runtime.GOOS != "windows" {
131+
continue
132+
}
140133
if test.createFakeKubeConfig {
141134
if err := createTestFile(fakeKubeConfig); err != nil {
142135
t.Error(err)
@@ -150,6 +143,13 @@ users:
150143
if err := os.WriteFile(fakeKubeConfig, []byte(fakeContent), 0666); err != nil {
151144
t.Error(err)
152145
}
146+
147+
kubeClient, err = util.GetKubeClient(test.kubeconfig, 25.0, 50, "")
148+
if err != nil {
149+
t.Error(err)
150+
}
151+
} else {
152+
kubeClient = nil
153153
}
154154
if test.createFakeCredFile {
155155
if err := createTestFile(fakeCredFile); err != nil {
@@ -169,17 +169,10 @@ users:
169169
}
170170
os.Setenv(DefaultAzureCredentialFileEnv, fakeCredFile)
171171
}
172-
kubeClient, err := util.GetKubeClient(test.kubeconfig, 25.0, 50, "")
173-
if err != nil {
174-
if !reflect.DeepEqual(err, test.expectedErr) && test.expectedErr != nil && !strings.Contains(err.Error(), test.expectedErr.Error()) {
175-
t.Errorf("desc: %s,\n input: %q, GetCloudProvider err: %v, expectedErr: %v", test.desc, test.kubeconfig, err, test.expectedErr)
176-
}
177-
continue
178-
}
172+
179173
cloud, err := GetCloudProvider(context.Background(), kubeClient, test.nodeID, "", "", test.userAgent, test.allowEmptyCloudConfig)
180-
if !reflect.DeepEqual(err, test.expectedErr) && test.expectedErr != nil && !strings.Contains(err.Error(), test.expectedErr.Error()) {
181-
t.Errorf("desc: %s,\n input: %q, GetCloudProvider err: %v, expectedErr: %v", test.desc, test.kubeconfig, err, test.expectedErr)
182-
}
174+
assert.ErrorIs(t, err, test.expectedErr)
175+
183176
if cloud == nil {
184177
t.Errorf("return value of getCloudProvider should not be nil even there is error")
185178
} else {

0 commit comments

Comments
 (0)