Пример #1
0
				Eventually(sess).Should(Say("=== Administrators"))
				Eventually(sess).Should(Say(otherUser.Username))
				Expect(err).NotTo(HaveOccurred())
				Eventually(sess).Should(Exit(0))
			})

			Context("who owns an existing app", func() {

				var app model.App

				BeforeEach(func() {
					app = apps.Create(otherUser, "--no-remote")
				})

				AfterEach(func() {
					apps.Destroy(otherUser, app)
				})

				Specify("that admin can list permissions on the app owned by the second user", func() {
					sess, err := cmd.Start("deis perms:list --app=%s", &admin, app.Name)
					Eventually(sess).Should(Say("=== %s's Users", app.Name))
					Expect(err).NotTo(HaveOccurred())
					Eventually(sess).Should(Exit(0))
				})

				Context("and a third user also exists", func() {

					var thirdUser model.User

					BeforeEach(func() {
						thirdUser = auth.Register()
Пример #2
0
		AfterEach(func() {
			auth.Cancel(user)
		})

		Context("who owns an existing app that has already been deployed", func() {

			var app model.App

			BeforeEach(func() {
				app = apps.Create(user, "--no-remote")
				builds.Create(user, app)
			})

			AfterEach(func() {
				apps.Destroy(user, app)
			})

			Specify("that user can list environment variables on that app", func() {
				sess, err := cmd.Start("deis config:list -a %s", &user, app.Name)
				Eventually(sess).Should(Say("=== %s Config", app.Name))
				Expect(err).NotTo(HaveOccurred())
				Eventually(sess).Should(Exit(0))
			})

			Specify("that user can set environment variables on that app", func() {
				sess, err := cmd.Start("deis config:set -a %s POWERED_BY=midi-chlorians", &user, app.Name)
				Expect(err).NotTo(HaveOccurred())
				Eventually(sess).Should(Say("Creating config"))
				Eventually(sess, settings.MaxEventuallyTimeout).Should(Say("=== %s Config", app.Name))
				Eventually(sess).Should(Say(`POWERED_BY\s+midi-chlorians`))
Пример #3
0
				BeforeEach(func() {
					output, err := cmd.Execute(`git clone https://github.com/deis/example-go.git`)
					Expect(err).NotTo(HaveOccurred(), output)
				})

				Context("and has run `deis apps:create` from within that repo", func() {

					var app model.App

					BeforeEach(func() {
						os.Chdir("example-go")
						app = apps.Create(user)
					})

					AfterEach(func() {
						apps.Destroy(user, app)
					})

					Specify("that user can deploy that app using a git push", func() {
						git.Push(user, keyPath, app, "Powered by Deis")
					})

					Specify("that user can interrupt the deploy of the app and recover", func() {
						git.PushWithInterrupt(user, keyPath)

						git.PushUntilResult(user, keyPath,
							model.CmdResult{
								Out:      nil,
								Err:      []byte("Everything up-to-date"),
								ExitCode: 0,
							})
Пример #4
0
					var app model.App

					output, err := cmd.Execute(`git clone %s`, url)
					Expect(err).NotTo(HaveOccurred(), output)
					// infer app directory from URL
					splits := strings.Split(url, "/")
					dir := strings.TrimSuffix(splits[len(splits)-1], ".git")
					os.Chdir(dir)
					// create with custom buildpack if needed
					var args []string
					if buildpack != "" {
						args = append(args, fmt.Sprintf("--buildpack %s", buildpack))
					}
					app = apps.Create(user, args...)
					defer apps.Destroy(user, app)
					git.Push(user, keyPath, app, banner)

				},

				// NOTE: Keep this list up-to-date with any example apps that are added
				// under the github/deis org, or any third-party apps that increase coverage
				// or prevent regressions.
				Entry("Clojure", "https://github.com/deis/example-clojure-ring.git", "",
					"Powered by Deis"),
				Entry("Go", "https://github.com/deis/example-go.git", "",
					"Powered by Deis"),
				Entry("Java", "https://github.com/deis/example-java-jetty.git", "",
					"Powered by Deis"),
				Entry("Multi", "https://github.com/deis/example-multi", "",
					"Heroku Multipack Test"),