github.com/skippbox/kompose-origin@v0.0.0-20160524133224-16a9dca7bac2/integration/volume_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"fmt"
     5  	"os/exec"
     6  	"path/filepath"
     7  
     8  	. "gopkg.in/check.v1"
     9  )
    10  
    11  func (s *CliSuite) TestVolumeFromService(c *C) {
    12  	p := s.RandomProject()
    13  	cmd := exec.Command(s.command, "-f", "./assets/regression/60-volume_from.yml", "-p", p, "create")
    14  	err := cmd.Run()
    15  	c.Assert(err, IsNil)
    16  
    17  	volumeFromContainer := fmt.Sprintf("%s_%s_1", p, "first")
    18  	secondContainerName := p + "_second_1"
    19  
    20  	cn := s.GetContainerByName(c, secondContainerName)
    21  	c.Assert(cn, NotNil)
    22  
    23  	c.Assert(len(cn.HostConfig.VolumesFrom), Equals, 1)
    24  	c.Assert(cn.HostConfig.VolumesFrom[0], Equals, volumeFromContainer)
    25  }
    26  
    27  func (s *CliSuite) TestVolumeFromServiceWithContainerName(c *C) {
    28  	p := s.RandomProject()
    29  	cmd := exec.Command(s.command, "-f", "./assets/regression/volume_from_container_name.yml", "-p", p, "create")
    30  	err := cmd.Run()
    31  	c.Assert(err, IsNil)
    32  
    33  	volumeFromContainer := "first_container_name"
    34  	secondContainerName := p + "_second_1"
    35  
    36  	cn := s.GetContainerByName(c, secondContainerName)
    37  	c.Assert(cn, NotNil)
    38  
    39  	c.Assert(len(cn.HostConfig.VolumesFrom), Equals, 1)
    40  	c.Assert(cn.HostConfig.VolumesFrom[0], Equals, volumeFromContainer)
    41  }
    42  
    43  func (s *CliSuite) TestRelativeVolume(c *C) {
    44  	p := s.ProjectFromText(c, "up", `
    45  	server:
    46  	  image: busybox
    47  	  volumes:
    48  	    - .:/path
    49  	`)
    50  
    51  	absPath, err := filepath.Abs(".")
    52  	c.Assert(err, IsNil)
    53  	serverName := fmt.Sprintf("%s_%s_1", p, "server")
    54  	cn := s.GetContainerByName(c, serverName)
    55  
    56  	c.Assert(cn, NotNil)
    57  	c.Assert(len(cn.Mounts), DeepEquals, 1)
    58  	c.Assert(cn.Mounts[0].Source, DeepEquals, absPath)
    59  	c.Assert(cn.Mounts[0].Destination, DeepEquals, "/path")
    60  }
    61  
    62  func (s *CliSuite) TestNamedVolume(c *C) {
    63  	p := s.ProjectFromText(c, "up", `
    64  	server:
    65  	  image: busybox
    66  	  volumes:
    67  	    - vol:/path
    68  	`)
    69  
    70  	serverName := fmt.Sprintf("%s_%s_1", p, "server")
    71  	cn := s.GetContainerByName(c, serverName)
    72  
    73  	c.Assert(cn, NotNil)
    74  	c.Assert(len(cn.Mounts), DeepEquals, 1)
    75  	c.Assert(cn.Mounts[0].Name, DeepEquals, "vol")
    76  	c.Assert(cn.Mounts[0].Destination, DeepEquals, "/path")
    77  }