mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Merge pull request #88521 from mattjmcnaughton/mattjmcnaughton/add-error-testing-image-service
Add error path testing to image handling by `kubeGenericRuntimeManager`
This commit is contained in:
commit
7061dddf26
@ -18,6 +18,7 @@ package kuberuntime
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -44,6 +45,20 @@ func TestPullImage(t *testing.T) {
|
|||||||
assert.Equal(t, images[0].RepoTags, []string{"busybox"})
|
assert.Equal(t, images[0].RepoTags, []string{"busybox"})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPullImageWithError(t *testing.T) {
|
||||||
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
fakeImageService.InjectError("PullImage", fmt.Errorf("test-error"))
|
||||||
|
imageRef, err := fakeManager.PullImage(kubecontainer.ImageSpec{Image: "busybox"}, nil, nil)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.Equal(t, "", imageRef)
|
||||||
|
|
||||||
|
images, err := fakeManager.ListImages()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, 0, len(images))
|
||||||
|
}
|
||||||
|
|
||||||
func TestListImages(t *testing.T) {
|
func TestListImages(t *testing.T) {
|
||||||
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -62,6 +77,17 @@ func TestListImages(t *testing.T) {
|
|||||||
assert.Equal(t, expected.List(), actual.List())
|
assert.Equal(t, expected.List(), actual.List())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestListImagesWithError(t *testing.T) {
|
||||||
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
fakeImageService.InjectError("ListImages", fmt.Errorf("test-failure"))
|
||||||
|
|
||||||
|
actualImages, err := fakeManager.ListImages()
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.Nil(t, actualImages)
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetImageRef(t *testing.T) {
|
func TestGetImageRef(t *testing.T) {
|
||||||
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -73,6 +99,32 @@ func TestGetImageRef(t *testing.T) {
|
|||||||
assert.Equal(t, image, imageRef)
|
assert.Equal(t, image, imageRef)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetImageRefImageNotAvailableLocally(t *testing.T) {
|
||||||
|
_, _, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
image := "busybox"
|
||||||
|
|
||||||
|
imageRef, err := fakeManager.GetImageRef(kubecontainer.ImageSpec{Image: image})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
imageNotAvailableLocallyRef := ""
|
||||||
|
assert.Equal(t, imageNotAvailableLocallyRef, imageRef)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetImageRefWithError(t *testing.T) {
|
||||||
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
image := "busybox"
|
||||||
|
|
||||||
|
fakeImageService.InjectError("ImageStatus", fmt.Errorf("test-error"))
|
||||||
|
|
||||||
|
imageRef, err := fakeManager.GetImageRef(kubecontainer.ImageSpec{Image: image})
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.Equal(t, "", imageRef)
|
||||||
|
}
|
||||||
|
|
||||||
func TestRemoveImage(t *testing.T) {
|
func TestRemoveImage(t *testing.T) {
|
||||||
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -86,6 +138,29 @@ func TestRemoveImage(t *testing.T) {
|
|||||||
assert.Equal(t, 0, len(fakeImageService.Images))
|
assert.Equal(t, 0, len(fakeImageService.Images))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRemoveImageNoOpIfImageNotLocal(t *testing.T) {
|
||||||
|
_, _, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
err = fakeManager.RemoveImage(kubecontainer.ImageSpec{Image: "busybox"})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRemoveImageWithError(t *testing.T) {
|
||||||
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
_, err = fakeManager.PullImage(kubecontainer.ImageSpec{Image: "busybox"}, nil, nil)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, 1, len(fakeImageService.Images))
|
||||||
|
|
||||||
|
fakeImageService.InjectError("RemoveImage", fmt.Errorf("test-failure"))
|
||||||
|
|
||||||
|
err = fakeManager.RemoveImage(kubecontainer.ImageSpec{Image: "busybox"})
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.Equal(t, 1, len(fakeImageService.Images))
|
||||||
|
}
|
||||||
|
|
||||||
func TestImageStats(t *testing.T) {
|
func TestImageStats(t *testing.T) {
|
||||||
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -101,6 +176,17 @@ func TestImageStats(t *testing.T) {
|
|||||||
assert.Equal(t, expectedStats, actualStats)
|
assert.Equal(t, expectedStats, actualStats)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestImageStatsWithError(t *testing.T) {
|
||||||
|
_, fakeImageService, fakeManager, err := createTestRuntimeManager()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
fakeImageService.InjectError("ListImages", fmt.Errorf("test-failure"))
|
||||||
|
|
||||||
|
actualImageStats, err := fakeManager.ImageStats()
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.Nil(t, actualImageStats)
|
||||||
|
}
|
||||||
|
|
||||||
func TestPullWithSecrets(t *testing.T) {
|
func TestPullWithSecrets(t *testing.T) {
|
||||||
// auth value is equivalent to: "username":"passed-user","password":"passed-password"
|
// auth value is equivalent to: "username":"passed-user","password":"passed-password"
|
||||||
dockerCfg := map[string]map[string]string{"index.docker.io/v1/": {"email": "passed-email", "auth": "cGFzc2VkLXVzZXI6cGFzc2VkLXBhc3N3b3Jk"}}
|
dockerCfg := map[string]map[string]string{"index.docker.io/v1/": {"email": "passed-email", "auth": "cGFzc2VkLXVzZXI6cGFzc2VkLXBhc3N3b3Jk"}}
|
||||||
|
Loading…
Reference in New Issue
Block a user