github.com/bdwilliams/libcompose@v0.3.1-0.20160826154243-d81a9bdacff0/integration/build_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"fmt"
     5  	"os/exec"
     6  	"strings"
     7  
     8  	"golang.org/x/net/context"
     9  
    10  	. "gopkg.in/check.v1"
    11  )
    12  
    13  func (s *CliSuite) TestBuild(c *C) {
    14  	p := s.RandomProject()
    15  	cmd := exec.Command(s.command, "-f", "./assets/build/docker-compose.yml", "-p", p, "build")
    16  	err := cmd.Run()
    17  
    18  	oneImageName := fmt.Sprintf("%s_one", p)
    19  	twoImageName := fmt.Sprintf("%s_two", p)
    20  
    21  	c.Assert(err, IsNil)
    22  
    23  	client := GetClient(c)
    24  	one, _, err := client.ImageInspectWithRaw(context.Background(), oneImageName, false)
    25  	c.Assert(err, IsNil)
    26  	c.Assert([]string(one.Config.Cmd), DeepEquals, []string{"echo", "one"})
    27  
    28  	two, _, err := client.ImageInspectWithRaw(context.Background(), twoImageName, false)
    29  	c.Assert(err, IsNil)
    30  	c.Assert([]string(two.Config.Cmd), DeepEquals, []string{"echo", "two"})
    31  }
    32  
    33  func (s *CliSuite) TestBuildWithNoCache1(c *C) {
    34  	p := s.RandomProject()
    35  	cmd := exec.Command(s.command, "-f", "./assets/build/docker-compose.yml", "-p", p, "build")
    36  
    37  	output, err := cmd.Output()
    38  	c.Assert(err, IsNil)
    39  
    40  	cmd = exec.Command(s.command, "-f", "./assets/build/docker-compose.yml", "-p", p, "build")
    41  	output, err = cmd.Output()
    42  	c.Assert(err, IsNil)
    43  	out := string(output[:])
    44  	c.Assert(strings.Contains(out,
    45  		"Using cache"),
    46  		Equals, true, Commentf("%s", out))
    47  }
    48  
    49  func (s *CliSuite) TestBuildWithNoCache2(c *C) {
    50  	p := s.RandomProject()
    51  	cmd := exec.Command(s.command, "-f", "./assets/build/docker-compose.yml", "-p", p, "build")
    52  
    53  	output, err := cmd.Output()
    54  	c.Assert(err, IsNil)
    55  
    56  	cmd = exec.Command(s.command, "-f", "./assets/build/docker-compose.yml", "-p", p, "build", "--no-cache")
    57  	output, err = cmd.Output()
    58  	c.Assert(err, IsNil)
    59  	out := string(output[:])
    60  	c.Assert(strings.Contains(out,
    61  		"Using cache"),
    62  		Equals, false, Commentf("%s", out))
    63  }
    64  
    65  func (s *CliSuite) TestBuildWithNoCache3(c *C) {
    66  	p := s.RandomProject()
    67  	cmd := exec.Command(s.command, "-f", "./assets/build/docker-compose.yml", "-p", p, "build", "--no-cache")
    68  	err := cmd.Run()
    69  
    70  	oneImageName := fmt.Sprintf("%s_one", p)
    71  	twoImageName := fmt.Sprintf("%s_two", p)
    72  
    73  	c.Assert(err, IsNil)
    74  
    75  	client := GetClient(c)
    76  	one, _, err := client.ImageInspectWithRaw(context.Background(), oneImageName, false)
    77  	c.Assert(err, IsNil)
    78  	c.Assert([]string(one.Config.Cmd), DeepEquals, []string{"echo", "one"})
    79  
    80  	two, _, err := client.ImageInspectWithRaw(context.Background(), twoImageName, false)
    81  	c.Assert(err, IsNil)
    82  	c.Assert([]string(two.Config.Cmd), DeepEquals, []string{"echo", "two"})
    83  }
    84  
    85  func (s *CliSuite) TestBuildWithArgs(c *C) {
    86  	p := s.RandomProject()
    87  	cmd := exec.Command(s.command, "-f", "./assets/v2-build-args/docker-compose.yml", "-p", p, "build")
    88  
    89  	output, err := cmd.Output()
    90  	c.Assert(err, IsNil)
    91  
    92  	c.Assert(strings.Contains(string(output), "buildno is 1"), Equals, true, Commentf("Expected 'buildno is 1' in output, got \n%s", string(output)))
    93  	c.Assert(strings.Contains(string(output), "buildno is 0"), Equals, false, Commentf("Expected to not find 'buildno is 0' in output, got \n%s", string(output)))
    94  }