github.com/misfo/deis@v1.0.1-0.20141111224634-e0eee0392b8a/database/tests/database_test.go (about) 1 package tests 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/deis/deis/tests/dockercli" 9 "github.com/deis/deis/tests/etcdutils" 10 "github.com/deis/deis/tests/mock" 11 "github.com/deis/deis/tests/utils" 12 ) 13 14 func TestDatabase(t *testing.T) { 15 var err error 16 tag, etcdPort := utils.BuildTag(), utils.RandomPort() 17 cli, stdout, stdoutPipe := dockercli.NewClient() 18 19 // start etcd container 20 etcdName := "deis-etcd-" + tag 21 dockercli.RunTestEtcd(t, etcdName, etcdPort) 22 defer cli.CmdRm("-f", etcdName) 23 24 // run mock ceph containers 25 cephName := "deis-ceph-" + tag 26 mock.RunMockCeph(t, cephName, cli, etcdPort) 27 defer cli.CmdRm("-f", "-v", cephName+"-monitor") 28 defer cli.CmdRm("-f", "-v", cephName+"-daemon") 29 defer cli.CmdRm("-f", cephName+"-metadata") 30 defer cli.CmdRm("-f", cephName+"-gateway") 31 32 // run database container 33 host, port := utils.HostAddress(), utils.RandomPort() 34 fmt.Printf("--- Run deis/database:%s at %s:%s\n", tag, host, port) 35 name := "deis-database-" + tag 36 defer cli.CmdRm("-f", name) 37 go func() { 38 _ = cli.CmdRm("-f", name) 39 err = dockercli.RunContainer(cli, 40 "--name", name, 41 "--rm", 42 "-p", port+":5432", 43 "-e", "EXTERNAL_PORT="+port, 44 "-e", "HOST="+host, 45 "-e", "ETCD_PORT="+etcdPort, 46 "deis/database:"+tag) 47 }() 48 dockercli.PrintToStdout(t, stdout, stdoutPipe, "database: postgres is running...") 49 if err != nil { 50 t.Fatal(err) 51 } 52 // FIXME: Wait until etcd keys are published 53 time.Sleep(5000 * time.Millisecond) 54 dockercli.DeisServiceTest(t, name, port, "tcp") 55 etcdutils.VerifyEtcdValue(t, "/deis/database/host", host, etcdPort) 56 etcdutils.VerifyEtcdValue(t, "/deis/database/port", port, etcdPort) 57 }