Exemple #1
0
		})
	})

	Describe("taking out a lease on build scheduling", func() {
		var buildID int

		BeforeEach(func() {
			build, err := sqlDB.CreateOneOffBuild()
			Expect(err).NotTo(HaveOccurred())

			buildID = build.ID
		})

		Context("when something has been scheduling it recently", func() {
			It("does not get the lease", func() {
				lease, leased, err := sqlDB.LeaseBuildScheduling(buildID, 1*time.Second)
				Expect(err).NotTo(HaveOccurred())
				Expect(leased).To(BeTrue())

				lease.Break()

				_, leased, err = sqlDB.LeaseBuildScheduling(buildID, 1*time.Second)
				Expect(err).NotTo(HaveOccurred())
				Expect(leased).To(BeFalse())
			})
		})

		Context("when there has not been any scheduling recently", func() {
			It("gets and keeps the lease and stops others from getting it", func() {
				lease, leased, err := sqlDB.LeaseBuildScheduling(buildID, 1*time.Second)
				Expect(err).NotTo(HaveOccurred())