github.com/sealerio/sealer@v0.11.1-0.20240507115618-f4f89c5853ae/test/sealer_images_test.go (about) 1 // Copyright © 2021 Alibaba Group Holding Ltd. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package test 16 17 import ( 18 "fmt" 19 20 "github.com/sealerio/sealer/test/suites/build" 21 "github.com/sealerio/sealer/test/suites/image" 22 "github.com/sealerio/sealer/test/suites/registry" 23 "github.com/sealerio/sealer/test/testhelper" 24 "github.com/sealerio/sealer/test/testhelper/settings" 25 26 . "github.com/onsi/ginkgo" 27 . "github.com/onsi/gomega" 28 ) 29 30 var _ = Describe("sealer image", func() { 31 Context("pull image", func() { 32 33 It(fmt.Sprintf("pull image %s", settings.TestImageName), func() { 34 image.DoImageOps("pull", settings.TestImageName) 35 testhelper.CheckBeTrue(build.CheckIsImageExist(settings.TestImageName)) 36 37 tagImageNames := []string{ 38 "e2eimage_test:latest", 39 "e2eimage_test:v0.0.1", 40 "sealer-io/e2eimage_test:v0.0.2", 41 "docker.io/sealerio/e2eimage_test:v0.0.3", 42 } 43 By("tag by image name", func() { 44 for _, newOne := range tagImageNames { 45 image.TagImages(settings.TestImageName, newOne) 46 Expect(build.CheckIsImageExist(newOne)).Should(BeTrue()) 47 } 48 49 image.DoImageOps("images", "") 50 51 for _, imageName := range tagImageNames { 52 removeImage := imageName 53 image.DoImageOps("rmi", removeImage) 54 } 55 56 }) 57 58 By("remove tag image", func() { 59 tagImageName := "e2e_images_test:v0.3" 60 image.DoImageOps("pull", settings.TestImageName) 61 image.TagImages(settings.TestImageName, tagImageName) 62 testhelper.CheckBeTrue(build.CheckIsImageExist(tagImageName)) 63 image.DoImageOps("rmi", tagImageName) 64 testhelper.CheckNotBeTrue(build.CheckIsImageExist(tagImageName)) 65 }) 66 67 }) 68 69 faultImageNames := []string{ 70 fmt.Sprintf("%s/%s:latest", settings.DefaultImageName, settings.DefaultImageRepo), 71 fmt.Sprintf("%s:latest", settings.DefaultImageDomain), 72 fmt.Sprintf("%s:latest", settings.DefaultImageRepo), 73 } 74 75 for _, faultImageName := range faultImageNames { 76 faultImageName := faultImageName 77 It(fmt.Sprintf("pull fault image %s", faultImageName), func() { 78 sess, err := testhelper.Start(fmt.Sprintf("%s pull %s", settings.DefaultSealerBin, faultImageName)) 79 testhelper.CheckErr(err) 80 testhelper.CheckNotExit0(sess, settings.DefaultWaiteTime) 81 testhelper.CheckNotBeTrue(build.CheckIsImageExist(faultImageName)) 82 }) 83 } 84 85 }) 86 87 Context("remove image", func() { 88 It(fmt.Sprintf("remove image %s", settings.TestImageName), func() { 89 image.DoImageOps("images", "") 90 image.DoImageOps("pull", settings.TestImageName) 91 testhelper.CheckBeTrue(build.CheckIsImageExist(settings.TestImageName)) 92 image.DoImageOps("rmi", settings.TestImageName) 93 testhelper.CheckNotBeTrue(build.CheckIsImageExist(settings.TestImageName)) 94 }) 95 96 }) 97 98 Context("push image", func() { 99 BeforeEach(func() { 100 registry.Login() 101 image.DoImageOps("pull", settings.TestImageName) 102 }) 103 AfterEach(func() { 104 registry.Logout() 105 }) 106 It("push image", func() { 107 pushImageName := "docker.io/sealerio/e2eimage_test:v0.0.1" 108 if settings.RegistryURL != "" && settings.RegistryUsername != "" && settings.RegistryPasswd != "" { 109 pushImageName = settings.RegistryURL + "/" + settings.RegistryUsername + "/" + "e2eimage_test:v0.0.1" 110 } 111 image.TagImages(settings.TestImageName, pushImageName) 112 image.DoImageOps("push", pushImageName) 113 }) 114 }) 115 116 Context("login registry", func() { 117 AfterEach(func() { 118 registry.Logout() 119 }) 120 It("with correct name and password", func() { 121 image.CheckLoginResult( 122 settings.RegistryURL, 123 settings.RegistryUsername, 124 settings.RegistryPasswd, 125 true) 126 }) 127 It("with incorrect name and password", func() { 128 image.CheckLoginResult( 129 settings.RegistryURL, 130 settings.RegistryPasswd, 131 settings.RegistryUsername, 132 false) 133 }) 134 It("with only name", func() { 135 image.CheckLoginResult( 136 settings.RegistryURL, 137 settings.RegistryUsername, 138 "", 139 false) 140 }) 141 It("with only password", func() { 142 image.CheckLoginResult( 143 settings.RegistryURL, 144 "", 145 settings.RegistryPasswd, 146 false) 147 }) 148 It("with only registryURL", func() { 149 image.CheckLoginResult( 150 settings.RegistryURL, 151 "", 152 "", 153 false) 154 }) 155 }) 156 157 //todo add mount and umount e2e test 158 })