예제 #1
0
				BeforeEach(func() {
					fs.MkdirAll(targetDir, os.ModePerm)
				})

				It("decompresses the blob into the target dir", func() {
					Expect(fs.FileExists(targetDir)).To(BeTrue())
					Expect(compressor.DecompressFileToDirTarballPaths).ToNot(ContainElement(fileName))

					err := extractor.Extract(blobID, blobSHA1, targetDir)
					Expect(err).ToNot(HaveOccurred())
					Expect(fs.FileExists(targetDir)).To(BeTrue())
					Expect(compressor.DecompressFileToDirTarballPaths).To(ContainElement(fileName))
				})

				It("does not re-create the target package dir", func() {
					fs.MkdirAllError = fakeError
					err := extractor.Extract(blobID, blobSHA1, targetDir)
					Expect(err).ToNot(HaveOccurred())
				})

				Context("and decompressing the blob fails", func() {
					It("returns an error and doesn't remove the target dir", func() {
						compressor.DecompressFileToDirErr = fakeError
						Expect(fs.FileExists(targetDir)).To(BeTrue())
						err := extractor.Extract(blobID, blobSHA1, targetDir)
						Expect(err).To(HaveOccurred())
						Expect(err.Error()).To(Equal("Decompressing compiled package: BlobID: 'fake-blob-id', BlobSHA1: 'fake-sha1': Initial error"))
						Expect(fs.FileExists(targetDir)).To(BeTrue())
					})
				})
			})
예제 #2
0
  - fake-package-1
`,
						)
					})

					It("returns errors for each invalid job", func() {
						_, err := reader.Read()
						Expect(err).To(HaveOccurred())
						Expect(err.Error()).To(ContainSubstring("Reading job 'fake-job' from archive"))
						Expect(err.Error()).To(ContainSubstring("Reading job 'fake-job-2' from archive"))
					})
				})

				Context("when an extracted job path cannot be created", func() {
					BeforeEach(func() {
						fakeFs.MkdirAllError = errors.New("")
					})

					It("returns err", func() {
						_, err := reader.Read()
						Expect(err).To(HaveOccurred())
						Expect(err.Error()).To(ContainSubstring("Creating extracted job path"))
					})
				})
			})

			Context("when the CPI release manifest is invalid", func() {
				BeforeEach(func() {
					fakeFs.WriteFileString("/extracted/release/release.MF", "{")
				})
예제 #3
0
			writtenFileStats := fs.GetFileTestStat(fakeBlobstorePath + "/some-uuid")
			Expect(writtenFileStats).ToNot(BeNil())
			Expect("fake-file-contents").To(Equal(writtenFileStats.StringContents()))
		})

		It("errs when generating blob id errs", func() {
			uuidGen.GenerateError = errors.New("some-unfortunate-error")

			_, _, err := blobstore.Create("some/file")
			Expect(err).To(HaveOccurred())
			Expect(err.Error()).To(ContainSubstring("some-unfortunate-error"))
		})

		It("errs when mkdir errs", func() {
			fs.MkdirAllError = errors.New("fake-mkdir-error")

			_, _, err := blobstore.Create("/fake-file.txt")
			Expect(err).To(HaveOccurred())
			Expect(err.Error()).To(ContainSubstring("fake-mkdir-error"))
		})

		It("errs when copy file errs", func() {
			fs.WriteFileString("/fake-file.txt", "fake-file-contents")

			uuidGen.GeneratedUUID = "some-uuid"
			fs.CopyFileError = errors.New("fake-copy-file-error")

			_, _, err := blobstore.Create("/fake-file.txt")
			Expect(err).To(HaveOccurred())
			Expect(err.Error()).To(ContainSubstring("fake-copy-file-error"))