Skip to content

Commit dffc152

Browse files
wackxuxing-yang
authored andcommitted
fix fail UT
1 parent a9a8864 commit dffc152

File tree

1 file changed

+60
-64
lines changed

1 file changed

+60
-64
lines changed

pkg/controller/snapshot_ready_test.go

Lines changed: 60 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"testing"
2222
"time"
2323

24+
"k8s.io/api/core/v1"
2425
storagev1beta1 "k8s.io/api/storage/v1beta1"
2526
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
)
@@ -40,8 +41,7 @@ var volumeErr = &storagev1beta1.VolumeError{
4041
// controllerTest.testCall *once*.
4142
// 3. Compare resulting contents and snapshots with expected contents and snapshots.
4243
func TestSync(t *testing.T) {
43-
// TODO FIXME
44-
_ = []controllerTest{
44+
tests := []controllerTest{
4545
{
4646
// snapshot is bound to a non-existing content
4747
name: "2-1 - snapshot is bound to a non-existing content",
@@ -63,20 +63,26 @@ func TestSync(t *testing.T) {
6363
errors: noerrors,
6464
test: testSyncSnapshotError,
6565
},
66-
/* TODO FIXME
6766
{
68-
name: "2-3 - success bind snapshot and content, no status changed",
67+
name: "2-3 - success bind snapshot and content but not ready, no status changed",
6968
initialContents: newContentArray("content2-3", validSecretClass, "sid2-3", "vuid2-3", "volume2-3", "", "snap2-3", &deletePolicy, nil, nil),
7069
expectedContents: newContentArray("content2-3", validSecretClass, "sid2-3", "vuid2-3", "volume2-3", "snapuid2-3", "snap2-3", &deletePolicy, nil, nil),
7170
initialSnapshots: newSnapshotArray("snap2-3", validSecretClass, "content2-3", "snapuid2-3", "claim2-3", false, nil, metaTimeNow, nil),
7271
expectedSnapshots: newSnapshotArray("snap2-3", validSecretClass, "content2-3", "snapuid2-3", "claim2-3", false, nil, metaTimeNow, nil),
73-
expectedListCalls: []listCall{
72+
initialClaims: newClaimArray("claim2-3", "pvc-uid2-3", "1Gi", "volume2-3", v1.ClaimBound, &classEmpty),
73+
initialVolumes: newVolumeArray("volume2-3", "pv-uid2-3", "pv-handle2-3", "1Gi", "pvc-uid2-3", "claim2-3", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
74+
initialSecrets: []*v1.Secret{secret()},
75+
expectedCreateCalls: []createCall{
7476
{
75-
snapshotID: "sid2-3",
76-
status: &csi.SnapshotStatus{
77-
Type: csi.SnapshotStatus_UPLOADING,
78-
Details: "uploading",
79-
},
77+
snapshotName: "snapshot-snapuid2-3",
78+
volume: newVolume("volume2-3", "pv-uid2-3", "pv-handle2-3", "1Gi", "pvc-uid2-3", "claim2-3", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
79+
parameters: class5Parameters,
80+
secrets: map[string]string{"foo": "bar"},
81+
// information to return
82+
driverName: mockDriverName,
83+
snapshotId: "sid2-3",
84+
timestamp: timeNow,
85+
readyToUse: false,
8086
},
8187
},
8288
errors: noerrors,
@@ -87,89 +93,81 @@ func TestSync(t *testing.T) {
8793
name: "2-4 - noop",
8894
initialContents: newContentArray("content2-4", validSecretClass, "sid2-4", "vuid2-4", "volume2-4", "snapuid2-4", "snap2-4", &deletePolicy, nil, nil),
8995
expectedContents: newContentArray("content2-4", validSecretClass, "sid2-4", "vuid2-4", "volume2-4", "snapuid2-4", "snap2-4", &deletePolicy, nil, nil),
90-
initialSnapshots: newSnapshotArray("snap2-4", validSecretClass, "content2-4", "snapuid2-4", "claim2-4", false, nil, metaTimeNow, nil),
91-
expectedSnapshots: newSnapshotArray("snap2-4", validSecretClass, "content2-4", "snapuid2-4", "claim2-4", false, nil, metaTimeNow, nil),
92-
expectedListCalls: []listCall{
93-
{
94-
snapshotID: "sid2-4",
95-
status: &csi.SnapshotStatus{
96-
Type: csi.SnapshotStatus_UPLOADING,
97-
Details: "uploading",
98-
},
99-
},
100-
},
101-
errors: noerrors,
102-
test: testSyncSnapshot,
96+
initialSnapshots: newSnapshotArray("snap2-4", validSecretClass, "content2-4", "snapuid2-4", "claim2-4", true, nil, metaTimeNow, nil),
97+
expectedSnapshots: newSnapshotArray("snap2-4", validSecretClass, "content2-4", "snapuid2-4", "claim2-4", true, nil, metaTimeNow, nil),
98+
errors: noerrors,
99+
test: testSyncSnapshot,
103100
},
104101
{
105102
name: "2-5 - snapshot and content bound, status ready false -> true",
106103
initialContents: newContentArray("content2-5", validSecretClass, "sid2-5", "vuid2-5", "volume2-5", "snapuid2-5", "snap2-5", &deletePolicy, nil, nil),
107104
expectedContents: newContentArray("content2-5", validSecretClass, "sid2-5", "vuid2-5", "volume2-5", "snapuid2-5", "snap2-5", &deletePolicy, nil, nil),
108105
initialSnapshots: newSnapshotArray("snap2-5", validSecretClass, "content2-5", "snapuid2-5", "claim2-5", false, nil, metaTimeNow, nil),
109106
expectedSnapshots: newSnapshotArray("snap2-5", validSecretClass, "content2-5", "snapuid2-5", "claim2-5", true, nil, metaTimeNow, nil),
110-
expectedListCalls: []listCall{
107+
initialClaims: newClaimArray("claim2-5", "pvc-uid2-5", "1Gi", "volume2-5", v1.ClaimBound, &classEmpty),
108+
initialVolumes: newVolumeArray("volume2-5", "pv-uid2-5", "pv-handle2-5", "1Gi", "pvc-uid2-5", "claim2-5", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
109+
initialSecrets: []*v1.Secret{secret()},
110+
expectedCreateCalls: []createCall{
111111
{
112-
snapshotID: "sid2-5",
113-
status: &csi.SnapshotStatus{
114-
Type: csi.SnapshotStatus_READY,
115-
Details: "success",
116-
},
112+
snapshotName: "snapshot-snapuid2-5",
113+
volume: newVolume("volume2-5", "pv-uid2-5", "pv-handle2-5", "1Gi", "pvc-uid2-5", "claim2-5", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
114+
parameters: class5Parameters,
115+
secrets: map[string]string{"foo": "bar"},
116+
// information to return
117+
driverName: mockDriverName,
118+
snapshotId: "sid2-5",
119+
timestamp: timeNow,
120+
readyToUse: true,
117121
},
118122
},
119123
errors: noerrors,
120124
test: testSyncSnapshot,
121125
},
122-
{
123-
name: "2-6 - snapshot and content bound, status -> error uploading",
124-
initialContents: newContentArray("content2-6", validSecretClass, "sid2-6", "vuid2-6", "volume2-6", "snapuid2-6", "snap2-6", &deletePolicy, nil, nil),
125-
expectedContents: newContentArray("content2-6", validSecretClass, "sid2-6", "vuid2-6", "volume2-6", "snapuid2-6", "snap2-6", &deletePolicy, nil, nil),
126-
initialSnapshots: newSnapshotArray("snap2-6", validSecretClass, "content2-6", "snapuid2-6", "claim2-6", false, nil, metaTimeNow, nil),
127-
expectedSnapshots: newSnapshotArray("snap2-6", validSecretClass, "content2-6", "snapuid2-6", "claim2-6", false, volumeErr, metaTimeNow, nil),
128-
expectedEvents: []string{"Warning SnapshotUploadError"},
129-
expectedListCalls: []listCall{
130-
{
131-
snapshotID: "sid2-6",
132-
status: &csi.SnapshotStatus{
133-
Type: csi.SnapshotStatus_ERROR_UPLOADING,
134-
Details: "error upload",
135-
},
136-
},
137-
},
138-
errors: noerrors,
139-
test: testSyncSnapshot,
140-
},
141-
*/
142126
{
143127
name: "2-7 - snapshot and content bound, csi driver get status error",
144128
initialContents: newContentArray("content2-7", validSecretClass, "sid2-7", "vuid2-7", "volume2-7", "snapuid2-7", "snap2-7", &deletePolicy, nil, nil),
145129
expectedContents: newContentArray("content2-7", validSecretClass, "sid2-7", "vuid2-7", "volume2-7", "snapuid2-7", "snap2-7", &deletePolicy, nil, nil),
146130
initialSnapshots: newSnapshotArray("snap2-7", validSecretClass, "content2-7", "snapuid2-7", "claim2-7", false, nil, metaTimeNow, nil),
147-
expectedSnapshots: newSnapshotArray("snap2-7", validSecretClass, "content2-7", "snapuid2-7", "claim2-7", false, newVolumeError("Failed to check and update snapshot: failed to check snapshot status snap2-7 with error failed to list snapshot data content2-7: \"mock driver get status error\""), metaTimeNow, nil),
131+
expectedSnapshots: newSnapshotArray("snap2-7", validSecretClass, "content2-7", "snapuid2-7", "claim2-7", false, newVolumeError("Failed to check and update snapshot: mock create snapshot error"), metaTimeNow, nil),
148132
expectedEvents: []string{"Warning SnapshotCheckandUpdateFailed"},
149-
expectedListCalls: []listCall{
133+
initialClaims: newClaimArray("claim2-7", "pvc-uid2-7", "1Gi", "volume2-7", v1.ClaimBound, &classEmpty),
134+
initialVolumes: newVolumeArray("volume2-7", "pv-uid2-7", "pv-handle2-7", "1Gi", "pvc-uid2-7", "claim2-7", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
135+
initialSecrets: []*v1.Secret{secret()},
136+
expectedCreateCalls: []createCall{
150137
{
151-
snapshotID: "sid2-7",
152-
err: errors.New("mock driver get status error"),
138+
snapshotName: "snapshot-snapuid2-7",
139+
volume: newVolume("volume2-7", "pv-uid2-7", "pv-handle2-7", "1Gi", "pvc-uid2-7", "claim2-7", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
140+
parameters: class5Parameters,
141+
secrets: map[string]string{"foo": "bar"},
142+
// information to return
143+
err: errors.New("mock create snapshot error"),
153144
},
154145
},
155146
errors: noerrors,
156147
test: testSyncSnapshot,
157148
},
158-
/* TODO FIXME
159149
{
160150
name: "2-8 - snapshot and content bound, apiserver update status error",
161151
initialContents: newContentArray("content2-8", validSecretClass, "sid2-8", "vuid2-8", "volume2-8", "snapuid2-8", "snap2-8", &deletePolicy, nil, nil),
162152
expectedContents: newContentArray("content2-8", validSecretClass, "sid2-8", "vuid2-8", "volume2-8", "snapuid2-8", "snap2-8", &deletePolicy, nil, nil),
163153
initialSnapshots: newSnapshotArray("snap2-8", validSecretClass, "content2-8", "snapuid2-8", "claim2-8", false, nil, metaTimeNow, nil),
164154
expectedSnapshots: newSnapshotArray("snap2-8", validSecretClass, "content2-8", "snapuid2-8", "claim2-8", false, newVolumeError("Failed to check and update snapshot: snapshot controller failed to update default/snap2-8 on API server: mock update error"), metaTimeNow, nil),
165-
expectedEvents: []string{"Warning SnapshotUploadError"},
166-
expectedListCalls: []listCall{
155+
expectedEvents: []string{"Warning SnapshotCheckandUpdateFailed"},
156+
initialClaims: newClaimArray("claim2-8", "pvc-uid2-8", "1Gi", "volume2-8", v1.ClaimBound, &classEmpty),
157+
initialVolumes: newVolumeArray("volume2-8", "pv-uid2-8", "pv-handle2-8", "1Gi", "pvc-uid2-8", "claim2-8", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
158+
initialSecrets: []*v1.Secret{secret()},
159+
expectedCreateCalls: []createCall{
167160
{
168-
snapshotID: "sid2-8",
169-
status: &csi.SnapshotStatus{
170-
Type: csi.SnapshotStatus_ERROR_UPLOADING,
171-
Details: "error upload",
172-
},
161+
snapshotName: "snapshot-snapuid2-8",
162+
volume: newVolume("volume2-8", "pv-uid2-8", "pv-handle2-8", "1Gi", "pvc-uid2-8", "claim2-8", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
163+
parameters: class5Parameters,
164+
secrets: map[string]string{"foo": "bar"},
165+
// information to return
166+
driverName: mockDriverName,
167+
size: defaultSize,
168+
snapshotId: "sid2-8",
169+
timestamp: timeNow,
170+
readyToUse: true,
173171
},
174172
},
175173
errors: []reactorError{
@@ -179,7 +177,6 @@ func TestSync(t *testing.T) {
179177
},
180178
test: testSyncSnapshot,
181179
},
182-
*/
183180
{
184181
name: "2-9 - bind when snapshot and content matches",
185182
initialContents: newContentArray("content2-9", validSecretClass, "sid2-9", "vuid2-9", "volume2-9", "snapuid2-9", "snap2-9", &deletePolicy, nil, nil),
@@ -258,6 +255,5 @@ func TestSync(t *testing.T) {
258255
},
259256
}
260257

261-
// TODO FIXME
262-
// runSyncTests(t, tests, snapshotClasses)
258+
runSyncTests(t, tests, snapshotClasses)
263259
}

0 commit comments

Comments
 (0)