github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/integration/push/push_suite_test.go (about)

     1  package push
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"regexp"
     7  	"testing"
     8  	"time"
     9  
    10  	"code.cloudfoundry.org/cli/integration/helpers"
    11  	. "github.com/onsi/ginkgo"
    12  	. "github.com/onsi/gomega"
    13  	. "github.com/onsi/gomega/gexec"
    14  )
    15  
    16  const (
    17  	CFEventuallyTimeout  = 300 * time.Second
    18  	RealIsolationSegment = "persistent_isolation_segment"
    19  	PushCommandName      = "push"
    20  	PublicDockerImage    = "cloudfoundry/diego-docker-app-custom"
    21  )
    22  
    23  var (
    24  	// Suite Level
    25  	organization       string
    26  	space              string
    27  	foundDefaultDomain string
    28  	realDir            string
    29  
    30  	// Per Test Level
    31  	homeDir string
    32  )
    33  
    34  func TestPush(t *testing.T) {
    35  	RegisterFailHandler(Fail)
    36  	RunSpecs(t, "Push Integration Suite")
    37  }
    38  
    39  var _ = SynchronizedBeforeSuite(func() []byte {
    40  	return nil
    41  }, func(_ []byte) {
    42  	// Ginkgo Globals
    43  	SetDefaultEventuallyTimeout(CFEventuallyTimeout)
    44  	SetDefaultConsistentlyDuration(CFEventuallyTimeout)
    45  	// Setup common environment variables
    46  	helpers.TurnOffColors()
    47  
    48  	homeDir = helpers.SetHomeDir()
    49  	helpers.SetAPI()
    50  	helpers.LoginCF()
    51  
    52  	organization = helpers.NewOrgName()
    53  	helpers.CreateOrg(organization)
    54  	helpers.TargetOrg(organization)
    55  	helpers.CreateSpace("empty-space")
    56  	helpers.DestroyHomeDir(homeDir)
    57  
    58  	helpers.SetupSynchronizedSuite(func() {
    59  		helpers.EnableFeatureFlag("diego_docker")
    60  		helpers.EnableFeatureFlag("service_instance_sharing")
    61  	})
    62  
    63  	var err error
    64  	realDir, err = ioutil.TempDir("", "push-real-dir")
    65  	Expect(err).ToNot(HaveOccurred())
    66  })
    67  
    68  var _ = SynchronizedAfterSuite(func() {
    69  	helpers.SetAPI()
    70  	helpers.LoginCF()
    71  	helpers.QuickDeleteOrg(organization)
    72  	Expect(os.RemoveAll(realDir)).ToNot(HaveOccurred())
    73  }, func() {
    74  })
    75  
    76  var _ = BeforeEach(func() {
    77  	homeDir = helpers.SetHomeDir()
    78  	helpers.SetAPI()
    79  	space = helpers.NewSpaceName()
    80  	setupCF(organization, space)
    81  })
    82  
    83  var _ = AfterEach(func() {
    84  	GinkgoWriter.Write([]byte("==============================Global After Each=============================="))
    85  	helpers.QuickDeleteSpace(space)
    86  	helpers.DestroyHomeDir(homeDir)
    87  })
    88  
    89  func defaultSharedDomain() string {
    90  	// TODO: Move this into helpers when other packages need it, figure out how
    91  	// to cache cuz this is a wacky call otherwise
    92  	if foundDefaultDomain == "" {
    93  		session := helpers.CF("domains")
    94  		Eventually(session).Should(Exit(0))
    95  
    96  		regex, err := regexp.Compile(`(.+?)\s+shared`)
    97  		Expect(err).ToNot(HaveOccurred())
    98  
    99  		matches := regex.FindStringSubmatch(string(session.Out.Contents()))
   100  		Expect(matches).To(HaveLen(2))
   101  
   102  		foundDefaultDomain = matches[1]
   103  	}
   104  	return foundDefaultDomain
   105  }
   106  
   107  func setupCF(org string, space string) {
   108  	helpers.LoginCF()
   109  	helpers.TargetOrg(org)
   110  	helpers.CreateSpace(space)
   111  	helpers.TargetOrgAndSpace(org, space)
   112  }