Skip to content

Commit

Permalink
Merge pull request #701 from Juneezee/test/t.TempDir
Browse files Browse the repository at this point in the history
  • Loading branch information
hiddeco authored Apr 29, 2022
2 parents bc5a47e + 10b92da commit 89a4e52
Show file tree
Hide file tree
Showing 19 changed files with 125 additions and 378 deletions.
72 changes: 18 additions & 54 deletions controllers/bucket_controller_fetch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,19 +107,15 @@ func Test_fetchEtagIndex(t *testing.T) {
}

t.Run("fetches etag index", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
client.addObject("foo.yaml", mockBucketObject{data: "foo.yaml", etag: "etag1"})
client.addObject("bar.yaml", mockBucketObject{data: "bar.yaml", etag: "etag2"})
client.addObject("baz.yaml", mockBucketObject{data: "baz.yaml", etag: "etag3"})

index := newEtagIndex()
err = fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand All @@ -128,33 +124,25 @@ func Test_fetchEtagIndex(t *testing.T) {
})

t.Run("an error while bucket does not exist", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: "other-bucket-name"}

index := newEtagIndex()
err = fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
assert.ErrorContains(t, err, "not found")
})

t.Run("filters with .sourceignore rules", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
client.addObject(".sourceignore", mockBucketObject{etag: "sourceignore1", data: `*.txt`})
client.addObject("foo.yaml", mockBucketObject{etag: "etag1", data: "foo.yaml"})
client.addObject("foo.txt", mockBucketObject{etag: "etag2", data: "foo.txt"})

index := newEtagIndex()
err = fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand All @@ -170,11 +158,7 @@ func Test_fetchEtagIndex(t *testing.T) {
})

t.Run("filters with ignore rules from object", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
client.addObject(".sourceignore", mockBucketObject{etag: "sourceignore1", data: `*.txt`})
Expand All @@ -185,7 +169,7 @@ func Test_fetchEtagIndex(t *testing.T) {
bucket.Spec.Ignore = &ignore

index := newEtagIndex()
err = fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchEtagIndex(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand All @@ -212,11 +196,7 @@ func Test_fetchFiles(t *testing.T) {
}

t.Run("fetches files", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
client.addObject("foo.yaml", mockBucketObject{data: "foo.yaml", etag: "etag1"})
Expand All @@ -225,7 +205,7 @@ func Test_fetchFiles(t *testing.T) {

index := client.objectsToEtagIndex()

err = fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand All @@ -240,34 +220,26 @@ func Test_fetchFiles(t *testing.T) {
})

t.Run("an error while fetching returns an error for the whole procedure", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName, objects: map[string]mockBucketObject{}}
client.objects["error"] = mockBucketObject{}

err = fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), client.objectsToEtagIndex(), tmp)
err := fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), client.objectsToEtagIndex(), tmp)
if err == nil {
t.Fatal("expected error but got nil")
}
})

t.Run("a changed etag updates the index", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
client.addObject("foo.yaml", mockBucketObject{data: "foo.yaml", etag: "etag2"})

index := newEtagIndex()
index.Add("foo.yaml", "etag1")
err = fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand All @@ -276,11 +248,7 @@ func Test_fetchFiles(t *testing.T) {
})

t.Run("a disappeared index entry is removed from the index", func(t *testing.T) {
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
client.addObject("foo.yaml", mockBucketObject{data: "foo.yaml", etag: "etag1"})
Expand All @@ -290,7 +258,7 @@ func Test_fetchFiles(t *testing.T) {
// Does not exist on server
index.Add("bar.yaml", "etag2")

err = fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand All @@ -301,11 +269,7 @@ func Test_fetchFiles(t *testing.T) {

t.Run("can fetch more than maxConcurrentFetches", func(t *testing.T) {
// this will fail if, for example, the semaphore is not used correctly and blocks
tmp, err := os.MkdirTemp("", "test-bucket")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmp)
tmp := t.TempDir()

client := mockBucketClient{bucketName: bucketName}
for i := 0; i < 2*maxConcurrentBucketFetches; i++ {
Expand All @@ -314,7 +278,7 @@ func Test_fetchFiles(t *testing.T) {
}
index := client.objectsToEtagIndex()

err = fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
err := fetchIndexFiles(context.TODO(), client, bucket.DeepCopy(), index, tmp)
if err != nil {
t.Fatal(err)
}
Expand Down
12 changes: 3 additions & 9 deletions controllers/bucket_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -539,9 +539,7 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
Client: builder.Build(),
Storage: testStorage,
}
tmpDir, err := os.MkdirTemp("", "reconcile-bucket-source-")
g.Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

obj := &sourcev1.Bucket{
TypeMeta: metav1.TypeMeta{
Expand Down Expand Up @@ -834,9 +832,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
Client: builder.Build(),
Storage: testStorage,
}
tmpDir, err := os.MkdirTemp("", "reconcile-bucket-source-")
g.Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

// Test bucket object.
obj := &sourcev1.Bucket{
Expand Down Expand Up @@ -992,9 +988,7 @@ func TestBucketReconciler_reconcileArtifact(t *testing.T) {
Storage: testStorage,
}

tmpDir, err := os.MkdirTemp("", "reconcile-bucket-artifact-")
g.Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

obj := &sourcev1.Bucket{
TypeMeta: metav1.TypeMeta{
Expand Down
12 changes: 3 additions & 9 deletions controllers/gitrepository_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -509,9 +509,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
t.Skipf("Skipped for Git implementation %q", i)
}

tmpDir, err := os.MkdirTemp("", "auth-strategy-")
g.Expect(err).To(BeNil())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

obj := obj.DeepCopy()
obj.Spec.GitImplementation = i
Expand Down Expand Up @@ -671,9 +669,7 @@ func TestGitRepositoryReconciler_reconcileSource_checkoutStrategy(t *testing.T)
t.Skipf("Skipped for Git implementation %q", i)
}

tmpDir, err := os.MkdirTemp("", "checkout-strategy-")
g.Expect(err).NotTo(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

obj := obj.DeepCopy()
obj.Spec.GitImplementation = i
Expand Down Expand Up @@ -1072,9 +1068,7 @@ func TestGitRepositoryReconciler_reconcileInclude(t *testing.T) {
tt.beforeFunc(obj)
}

tmpDir, err := os.MkdirTemp("", "include-")
g.Expect(err).NotTo(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

var commit git.Commit
var includes artifactSet
Expand Down
8 changes: 2 additions & 6 deletions controllers/helmchart_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,7 @@ func TestHelmChartReconciler_reconcileStorage(t *testing.T) {
func TestHelmChartReconciler_reconcileSource(t *testing.T) {
g := NewWithT(t)

tmpDir, err := os.MkdirTemp("", "reconcile-tarball-")
g.Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

storage, err := NewStorage(tmpDir, "example.com", retentionTTL, retentionRecords)
g.Expect(err).ToNot(HaveOccurred())
Expand Down Expand Up @@ -781,9 +779,7 @@ func TestHelmChartReconciler_buildFromHelmRepository(t *testing.T) {
func TestHelmChartReconciler_buildFromTarballArtifact(t *testing.T) {
g := NewWithT(t)

tmpDir, err := os.MkdirTemp("", "reconcile-tarball-")
g.Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

storage, err := NewStorage(tmpDir, "example.com", retentionTTL, retentionRecords)
g.Expect(err).ToNot(HaveOccurred())
Expand Down
4 changes: 1 addition & 3 deletions controllers/helmrepository_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -728,9 +728,7 @@ func TestHelmRepositoryReconciler_reconcileArtifact(t *testing.T) {
},
}

tmpDir, err := os.MkdirTemp("", "test-reconcile-artifact-")
g.Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

// Create an empty cache file.
cachePath := filepath.Join(tmpDir, "index.yaml")
Expand Down
Loading

0 comments on commit 89a4e52

Please sign in to comment.