|
|
|
package container
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/samalba/dockerclient"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestID(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{Id: "foo"},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "foo", c.ID())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestName(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{Name: "foo"},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "foo", c.Name())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestImageID(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
imageInfo: &dockerclient.ImageInfo{
|
|
|
|
Id: "foo",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "foo", c.ImageID())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestImageName_Tagged(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Image: "foo:latest",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "foo:latest", c.ImageName())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestImageName_Untagged(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Image: "foo",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "foo:latest", c.ImageName())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestImageName_Zodiac(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Labels: map[string]string{"com.centurylinklabs.zodiac.original-image": "foo"},
|
|
|
|
Image: "1234567890",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "foo:latest", c.ImageName())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestLinks(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
HostConfig: &dockerclient.HostConfig{
|
|
|
|
Links: []string{"foo:foo", "bar:bar"},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
links := c.Links()
|
|
|
|
|
|
|
|
assert.Equal(t, []string{"foo", "bar"}, links)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestIsWatchtower_True(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Labels: map[string]string{"com.centurylinklabs.watchtower": "true"},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.True(t, c.IsWatchtower())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestIsWatchtower_WrongLabelValue(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Labels: map[string]string{"com.centurylinklabs.watchtower": "false"},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.False(t, c.IsWatchtower())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestIsWatchtower_NoLabel(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Labels: map[string]string{},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.False(t, c.IsWatchtower())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestStopSignal_Present(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Labels: map[string]string{
|
|
|
|
"com.centurylinklabs.watchtower.stop-signal": "SIGQUIT",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "SIGQUIT", c.StopSignal())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestStopSignal_NoLabel(t *testing.T) {
|
|
|
|
c := Container{
|
|
|
|
containerInfo: &dockerclient.ContainerInfo{
|
|
|
|
Config: &dockerclient.ContainerConfig{
|
|
|
|
Labels: map[string]string{},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.Equal(t, "", c.StopSignal())
|
|
|
|
}
|