Exemplo n.º 1
0
		Expect(err).NotTo(HaveOccurred())
		logger = lagertest.NewTestLogger("test")

		retryable = repository_fetcher.Retryable{
			RepositoryFetcher: fakeRemoteFetcher,
			Logger:            logger,
		}
	})

	Describe("Fetch failures", func() {
		Context("when fetching fails twice", func() {
			BeforeEach(func() {
				fakeRemoteFetcher.FetchStub = func(u *url.URL, diskQuota int64) (*repository_fetcher.Image, error) {
					if fakeRemoteFetcher.FetchCallCount() <= 2 {
						return nil, errors.New("error-talking-to-remote-repo")
					} else {
						return nil, nil
					}
				}

				_, err := retryable.Fetch(repoURL, 0)
				Expect(err).NotTo(HaveOccurred())
			})

			It("suceeds on third attempt", func() {
				Expect(fakeRemoteFetcher.FetchCallCount()).To(Equal(3))
			})

			It("logs failing attempts", func() {
				itLogsFailingAttempts(logger, 2, "test.failed-to-fetch")
			})