128 lines
3.4 KiB
Go
128 lines
3.4 KiB
Go
package test_bindings
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/containers/libpod/pkg/bindings"
|
|
"github.com/containers/libpod/pkg/bindings/images"
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
"github.com/onsi/gomega/gexec"
|
|
)
|
|
|
|
var _ = Describe("Podman images", func() {
|
|
var (
|
|
//tempdir string
|
|
//err error
|
|
//podmanTest *PodmanTestIntegration
|
|
bt *bindingTest
|
|
s *gexec.Session
|
|
connText context.Context
|
|
err error
|
|
false bool
|
|
//true bool = true
|
|
)
|
|
|
|
BeforeEach(func() {
|
|
//tempdir, err = CreateTempDirInTempDir()
|
|
//if err != nil {
|
|
// os.Exit(1)
|
|
//}
|
|
//podmanTest = PodmanTestCreate(tempdir)
|
|
//podmanTest.Setup()
|
|
//podmanTest.SeedImages()
|
|
bt = newBindingTest()
|
|
p := bt.runPodman([]string{"pull", alpine})
|
|
p.Wait(45)
|
|
s = bt.startAPIService()
|
|
time.Sleep(1 * time.Second)
|
|
connText, err = bindings.NewConnection(bt.sock)
|
|
Expect(err).To(BeNil())
|
|
})
|
|
|
|
AfterEach(func() {
|
|
//podmanTest.Cleanup()
|
|
//f := CurrentGinkgoTestDescription()
|
|
//processTestResult(f)
|
|
s.Kill()
|
|
bt.cleanup()
|
|
})
|
|
It("inspect image", func() {
|
|
// Inspect invalid image be 404
|
|
_, err = images.GetImage(connText, "foobar5000", nil)
|
|
Expect(err).ToNot(BeNil())
|
|
code, _ := bindings.CheckResponseCode(err)
|
|
Expect(code).To(BeNumerically("==", 404))
|
|
|
|
// Inspect by short name
|
|
data, err := images.GetImage(connText, "alpine", nil)
|
|
Expect(err).To(BeNil())
|
|
|
|
// Inspect with full ID
|
|
_, err = images.GetImage(connText, data.ID, nil)
|
|
Expect(err).To(BeNil())
|
|
|
|
// Inspect with partial ID
|
|
_, err = images.GetImage(connText, data.ID[0:12], nil)
|
|
Expect(err).To(BeNil())
|
|
|
|
//Inspect by long name should work, it doesnt (yet) i think it needs to be html escaped
|
|
_, err = images.GetImage(connText, alpine, nil)
|
|
Expect(err).To(BeNil())
|
|
})
|
|
It("remove image", func() {
|
|
// Remove invalid image should be a 404
|
|
_, err = images.Remove(connText, "foobar5000", &false)
|
|
Expect(err).ToNot(BeNil())
|
|
code, _ := bindings.CheckResponseCode(err)
|
|
Expect(code).To(BeNumerically("==", 404))
|
|
|
|
_, err := images.GetImage(connText, "alpine", nil)
|
|
Expect(err).To(BeNil())
|
|
|
|
response, err := images.Remove(connText, "alpine", &false)
|
|
Expect(err).To(BeNil())
|
|
fmt.Println(response)
|
|
// to be continued
|
|
|
|
})
|
|
|
|
//Tests to validate the image tag command.
|
|
It("tag image", func() {
|
|
// Validates if invalid image name is given a bad response is encountered.
|
|
err = images.Tag(connText, "dummy", "demo", "alpine")
|
|
Expect(err).ToNot(BeNil())
|
|
code, _ := bindings.CheckResponseCode(err)
|
|
Expect(code).To(BeNumerically("==", 404))
|
|
|
|
// Validates if the image is tagged sucessfully.
|
|
err = images.Tag(connText, "alpine", "demo", "alpine")
|
|
Expect(err).To(BeNil())
|
|
|
|
//Validates if name updates when the image is retagged.
|
|
_, err := images.GetImage(connText, "alpine:demo", nil)
|
|
Expect(err).To(BeNil())
|
|
|
|
})
|
|
|
|
//Test to validate the List images command.
|
|
It("List image", func() {
|
|
//Array to hold the list of images returned
|
|
imageSummary, err := images.List(connText, nil, nil)
|
|
//There Should be no errors in the response.
|
|
Expect(err).To(BeNil())
|
|
//Since in the begin context only one image is created the list context should have only one image
|
|
Expect(len(imageSummary)).To(Equal(1))
|
|
|
|
//To be written create a new image and check list count again
|
|
//imageSummary, err = images.List(connText, nil, nil)
|
|
|
|
//Since in the begin context only one image adding one more image should
|
|
///Expect(len(imageSummary)).To(Equal(2)
|
|
|
|
})
|
|
|
|
})
|