innerBlobstore.CreateBlobID = "fake-blob-id" innerBlobstore.CreateFingerprint = "fake-fingerprint" blobID, fingerprint, err := retryableBlobstore.Create("fake-file-name") Expect(err).ToNot(HaveOccurred()) Expect(blobID).To(Equal("fake-blob-id")) Expect(fingerprint).To(Equal("fake-fingerprint")) Expect(innerBlobstore.CreateFileNames).To(Equal([]string{"fake-file-name"})) }) }) Context("when inner blobstore succeed exactly at maximum number of create tries", func() { It("returns blobID and fingerprint without an error", func() { innerBlobstore.CreateBlobIDs = []string{"", "", "fake-last-blob-id"} innerBlobstore.CreateFingerprints = []string{"", "", "fake-last-fingerprint"} innerBlobstore.CreateErrs = []error{ errors.New("fake-create-err-1"), errors.New("fake-create-err-2"), nil, } blobID, fingerprint, err := retryableBlobstore.Create("fake-file-name") Expect(err).ToNot(HaveOccurred()) Expect(blobID).To(Equal("fake-last-blob-id")) Expect(fingerprint).To(Equal("fake-last-fingerprint")) Expect(innerBlobstore.CreateFileNames).To(Equal( []string{"fake-file-name", "fake-file-name", "fake-file-name"}, )) })
jobProperties := biproperty.Map{ "fake-installation-property": "fake-installation-property-value", } globalProperties := biproperty.Map{} deploymentName := "fake-installation-name" address := "" renderedJobList = bitemplate.NewRenderedJobList() renderedJobList.Add(bitemplate.NewRenderedJob(releaseJob, "/fake-rendered-job-cpi", fakeFS, logger)) mockJobListRenderer.EXPECT().Render(releaseJobs, releaseJobProperties, jobProperties, globalProperties, deploymentName, address).Return(renderedJobList, nil).AnyTimes() fakeCompressor.CompressFilesInDirTarballPath = "/fake-rendered-job-tarball-cpi.tgz" fakeBlobstore.CreateBlobIDs = []string{"fake-rendered-job-tarball-blobstore-id-cpi"} fakeBlobstore.CreateFingerprints = []string{"fake-rendered-job-tarball-sha1-cpi"} }) Describe("RenderAndUploadFrom", func() { It("logs compile & render stages", func() { _, err := renderer.RenderAndUploadFrom(manifest, releaseJobs, fakeStage) Expect(err).ToNot(HaveOccurred()) Expect(fakeStage.PerformCalls).To(Equal([]*fakebiui.PerformCall{ // compile stages not produced by mockDependencyCompiler {Name: "Rendering job templates"}, })) }) It("compresses and uploads the rendered cpi job, deleting the local tarball afterward", func() { _, err := renderer.RenderAndUploadFrom(manifest, releaseJobs, fakeStage)