@@ -3,8 +3,10 @@ package integration
33import (
44 "fmt"
55 "os"
6+ "os/exec"
67
78 . "gopkg.in/check.v1"
9+ "path/filepath"
810)
911
1012func (s * RunSuite ) TestFields (c * C ) {
@@ -170,3 +172,79 @@ func (s *RunSuite) TestFieldTypeConversions(c *C) {
170172
171173 os .Unsetenv ("LIMIT" )
172174}
175+
176+ func (s * RunSuite ) TestMultipleComposeFilesOneTwo (c * C ) {
177+ p := "multiple"
178+ cmd := exec .Command (s .command , "-f" , "./assets/multiple/one.yml" , "-f" , "./assets/multiple/two.yml" , "create" )
179+ cmd .Stdout = os .Stdout
180+ cmd .Stderr = os .Stderr
181+ cmd .Stdin = os .Stdin
182+ err := cmd .Run ()
183+
184+ c .Assert (err , IsNil )
185+
186+ containerNames := []string {"multiple" , "simple" , "another" , "yetanother" }
187+
188+ for _ , containerName := range containerNames {
189+ name := fmt .Sprintf ("%s_%s_1" , p , containerName )
190+ container := s .GetContainerByName (c , name )
191+
192+ c .Assert (container , NotNil )
193+ }
194+
195+ name := fmt .Sprintf ("%s_%s_1" , p , "multiple" )
196+ container := s .GetContainerByName (c , name )
197+
198+ c .Assert (container .Config .Image , Equals , "busybox" )
199+ c .Assert (container .Config .Cmd , DeepEquals , []string {"echo" , "two" })
200+ c .Assert (container .Config .Env , DeepEquals , []string {"KEY1=VAL1" , "KEY2=VAL2" })
201+ }
202+
203+ func (s * RunSuite ) TestMultipleComposeFilesTwoOne (c * C ) {
204+ p := "multiple"
205+ cmd := exec .Command (s .command , "-f" , "./assets/multiple/two.yml" , "-f" , "./assets/multiple/one.yml" , "create" )
206+ cmd .Stdout = os .Stdout
207+ cmd .Stderr = os .Stderr
208+ cmd .Stdin = os .Stdin
209+ err := cmd .Run ()
210+
211+ c .Assert (err , IsNil )
212+
213+ containerNames := []string {"multiple" , "simple" , "another" , "yetanother" }
214+
215+ for _ , containerName := range containerNames {
216+ name := fmt .Sprintf ("%s_%s_1" , p , containerName )
217+ container := s .GetContainerByName (c , name )
218+
219+ c .Assert (container , NotNil )
220+ }
221+
222+ name := fmt .Sprintf ("%s_%s_1" , p , "multiple" )
223+ container := s .GetContainerByName (c , name )
224+
225+ c .Assert (container .Config .Image , Equals , "tianon/true" )
226+ c .Assert (container .Config .Cmd , DeepEquals , []string {"echo" , "two" })
227+ c .Assert (container .Config .Env , DeepEquals , []string {"KEY2=VAL2" , "KEY1=VAL1" })
228+ }
229+
230+ func (s * RunSuite ) TestDefaultMultipleComposeFiles (c * C ) {
231+ p := s .RandomProject ()
232+ cmd := exec .Command (filepath .Join ("../../" , s .command ), "-p" , p , "create" )
233+ cmd .Stdout = os .Stdout
234+ cmd .Stderr = os .Stderr
235+ cmd .Stdin = os .Stdin
236+ cmd .Dir = "./assets/multiple-composefiles-default/"
237+ err := cmd .Run ()
238+
239+ c .Assert (err , IsNil )
240+
241+ containerNames := []string {"simple" , "another" , "yetanother" }
242+
243+ for _ , containerName := range containerNames {
244+ name := fmt .Sprintf ("%s_%s_1" , p , containerName )
245+ container := s .GetContainerByName (c , name )
246+
247+ c .Assert (container , NotNil )
248+ }
249+
250+ }
0 commit comments