Merge pull request #76647 from cwdsuzhou/add_pv_test_in_printer

Add some tests for printing pv
This commit is contained in:
Kubernetes Prow Robot 2019-05-01 14:32:17 -07:00 committed by GitHub
commit f6ab463695
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3245,6 +3245,154 @@ func TestPrintReplicaSet(t *testing.T) {
}
}
func TestPrintPersistentVolume(t *testing.T) {
myScn := "my-scn"
claimRef := api.ObjectReference{
Name: "test",
Namespace: "default",
}
tests := []struct {
pv api.PersistentVolume
expect string
}{
{
// Test bound
api.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "test1",
},
Spec: api.PersistentVolumeSpec{
ClaimRef: &claimRef,
AccessModes: []api.PersistentVolumeAccessMode{api.ReadOnlyMany},
Capacity: map[api.ResourceName]resource.Quantity{
api.ResourceStorage: resource.MustParse("4Gi"),
},
},
Status: api.PersistentVolumeStatus{
Phase: api.VolumeBound,
},
},
"test1\t4Gi\tROX\t\tBound\tdefault/test\t\t\t<unknown>\n",
},
{
// // Test failed
api.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "test2",
},
Spec: api.PersistentVolumeSpec{
ClaimRef: &claimRef,
AccessModes: []api.PersistentVolumeAccessMode{api.ReadOnlyMany},
Capacity: map[api.ResourceName]resource.Quantity{
api.ResourceStorage: resource.MustParse("4Gi"),
},
},
Status: api.PersistentVolumeStatus{
Phase: api.VolumeFailed,
},
},
"test2\t4Gi\tROX\t\tFailed\tdefault/test\t\t\t<unknown>\n",
},
{
// Test pending
api.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "test3",
},
Spec: api.PersistentVolumeSpec{
ClaimRef: &claimRef,
AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteMany},
Capacity: map[api.ResourceName]resource.Quantity{
api.ResourceStorage: resource.MustParse("10Gi"),
},
},
Status: api.PersistentVolumeStatus{
Phase: api.VolumePending,
},
},
"test3\t10Gi\tRWX\t\tPending\tdefault/test\t\t\t<unknown>\n",
},
{
// Test pending, storageClass
api.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "test4",
},
Spec: api.PersistentVolumeSpec{
ClaimRef: &claimRef,
StorageClassName: myScn,
AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce},
Capacity: map[api.ResourceName]resource.Quantity{
api.ResourceStorage: resource.MustParse("10Gi"),
},
},
Status: api.PersistentVolumeStatus{
Phase: api.VolumePending,
},
},
"test4\t10Gi\tRWO\t\tPending\tdefault/test\tmy-scn\t\t<unknown>\n",
},
{
// Test available
api.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "test5",
},
Spec: api.PersistentVolumeSpec{
ClaimRef: &claimRef,
StorageClassName: myScn,
AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce},
Capacity: map[api.ResourceName]resource.Quantity{
api.ResourceStorage: resource.MustParse("10Gi"),
},
},
Status: api.PersistentVolumeStatus{
Phase: api.VolumeAvailable,
},
},
"test5\t10Gi\tRWO\t\tAvailable\tdefault/test\tmy-scn\t\t<unknown>\n",
},
{
// Test released
api.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "test6",
},
Spec: api.PersistentVolumeSpec{
ClaimRef: &claimRef,
StorageClassName: myScn,
AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce},
Capacity: map[api.ResourceName]resource.Quantity{
api.ResourceStorage: resource.MustParse("10Gi"),
},
},
Status: api.PersistentVolumeStatus{
Phase: api.VolumeReleased,
},
},
"test6\t10Gi\tRWO\t\tReleased\tdefault/test\tmy-scn\t\t<unknown>\n",
},
}
buf := bytes.NewBuffer([]byte{})
for _, test := range tests {
table, err := printers.NewTableGenerator().With(AddHandlers).GenerateTable(&test.pv, printers.PrintOptions{})
if err != nil {
t.Fatal(err)
}
verifyTable(t, table)
if err := printers.PrintTable(table, buf, printers.PrintOptions{NoHeaders: true}); err != nil {
t.Fatal(err)
}
if buf.String() != test.expect {
fmt.Println(buf.String())
fmt.Println(test.expect)
t.Fatalf("Expected: %s, but got: %s", test.expect, buf.String())
}
buf.Reset()
}
}
func TestPrintPersistentVolumeClaim(t *testing.T) {
volumeMode := api.PersistentVolumeFilesystem
myScn := "my-scn"