コード例 #1
0
				args := []string{
					"cool-web-app",
					"¥¥¥Bad-Docker¥¥¥",
					"--",
					"/start-me-please",
				}
				test_helpers.ExecuteCommandWithArgs(createCommand, args)

				Expect(outputBuffer).To(test_helpers.SayLine("Invalid repository name (¥¥¥Bad-Docker¥¥¥), only [a-z0-9-_.] are allowed"))
				Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.CommandFailed}))
			})
		})

		Context("when the app runner returns an error", func() {
			It("outputs error messages", func() {
				fakeAppRunner.CreateAppReturns(errors.New("Major Fault"))
				args := []string{
					"cool-web-app",
					"superfun/app",
					"--",
					"/start-me-please",
				}
				test_helpers.ExecuteCommandWithArgs(createCommand, args)

				Expect(outputBuffer).To(test_helpers.SayLine("Error creating app: Major Fault"))
				Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.CommandFailed}))
			})
		})

		Context("when a malformed tcp routes flag is passed", func() {
			It("errors out when the container port is not an int", func() {
コード例 #2
0
			err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{})
			Expect(err).To(MatchError("invalid character 'i' looking for beginning of value"))
		})

		It("returns an error when proxyConf reader fails", func() {
			fakeBlobStore.DownloadReturns(ioutil.NopCloser(strings.NewReader("{}")), nil)
			fakeBlobStore.DownloadDropletActionReturns(&models.DownloadAction{})
			fakeProxyConfReader.ProxyConfReturns(droplet_runner.ProxyConf{}, errors.New("proxyConf has failed"))

			err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{})
			Expect(err).To(MatchError("proxyConf has failed"))
		})

		It("returns an error when create app fails", func() {
			fakeBlobStore.DownloadReturns(ioutil.NopCloser(strings.NewReader(`{}`)), nil)
			fakeAppRunner.CreateAppReturns(errors.New("nope"))

			err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{})
			Expect(err).To(MatchError("nope"))
		})
	})

	Describe("RemoveDroplet", func() {
		It("recursively removes a droplets from the blob store", func() {
			config.SetBlobStore("blob-host", "7474", "dav-user", "dav-pass")
			Expect(config.Save()).To(Succeed())

			fakeBlobStore.ListReturns([]blob.Blob{
				{Path: "drippy/bits.zip"},
				{Path: "drippy/droplet.tgz"},
				{Path: "drippy/result.json"},