From 82a24d048daf34c475bc2adb69e853e3422d12be Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sun, 17 Dec 2017 20:33:28 -0200 Subject: [PATCH] test: fixed checksums pipe tests --- pipeline/checksums/checksums.go | 3 +- pipeline/checksums/checksums_test.go | 54 +++++++++++++++++++--------- pipeline/checksums/doc.go | 3 ++ 3 files changed, 41 insertions(+), 19 deletions(-) create mode 100644 pipeline/checksums/doc.go diff --git a/pipeline/checksums/checksums.go b/pipeline/checksums/checksums.go index df2adcc86..0bda34cc1 100644 --- a/pipeline/checksums/checksums.go +++ b/pipeline/checksums/checksums.go @@ -1,5 +1,3 @@ -// Package checksums provides a Pipe that creates .checksums files for -// each artifact. package checksums import ( @@ -60,6 +58,7 @@ func (Pipe) Run(ctx *context.Context) (err error) { artifact.Or( artifact.ByType(artifact.UploadableArchive), artifact.ByType(artifact.UploadableBinary), + artifact.ByType(artifact.LinuxPackage), ), ).List() { artifact := artifact diff --git a/pipeline/checksums/checksums_test.go b/pipeline/checksums/checksums_test.go index 246eb299a..e7965576c 100644 --- a/pipeline/checksums/checksums_test.go +++ b/pipeline/checksums/checksums_test.go @@ -5,6 +5,8 @@ import ( "path/filepath" "testing" + "github.com/goreleaser/goreleaser/internal/artifact" + "github.com/goreleaser/goreleaser/config" "github.com/goreleaser/goreleaser/context" "github.com/stretchr/testify/assert" @@ -21,18 +23,26 @@ func TestPipe(t *testing.T) { assert.NoError(t, err) var file = filepath.Join(folder, binary) assert.NoError(t, ioutil.WriteFile(file, []byte("some string"), 0644)) - var ctx = &context.Context{ - Config: config.Project{ + var ctx = context.New( + config.Project{ Dist: folder, ProjectName: binary, Checksum: config.Checksum{ NameTemplate: "{{ .ProjectName }}_checksums.txt", }, }, - } - ctx.AddArtifact(file) + ) + ctx.Artifacts.Add(artifact.Artifact{ + Name: binary, + Path: file, + Type: artifact.UploadableBinary, + }) assert.NoError(t, Pipe{}.Run(ctx)) - assert.Contains(t, ctx.Artifacts, checksums, binary) + var artifacts []string + for _, a := range ctx.Artifacts.List() { + artifacts = append(artifacts, a.Name) + } + assert.Contains(t, artifacts, checksums, binary) bts, err := ioutil.ReadFile(filepath.Join(folder, checksums)) assert.NoError(t, err) assert.Equal(t, "61d034473102d7dac305902770471fd50f4c5b26f6831a56dd90b5184b3c30fc binary\n", string(bts)) @@ -41,15 +51,19 @@ func TestPipe(t *testing.T) { func TestPipeFileNotExist(t *testing.T) { folder, err := ioutil.TempDir("", "goreleasertest") assert.NoError(t, err) - var ctx = &context.Context{ - Config: config.Project{ + var ctx = context.New( + config.Project{ Dist: folder, Checksum: config.Checksum{ NameTemplate: "checksums.txt", }, }, - } - ctx.AddArtifact("nope") + ) + ctx.Artifacts.Add(artifact.Artifact{ + Name: "nope", + Path: "/nope", + Type: artifact.UploadableBinary, + }) err = Pipe{}.Run(ctx) assert.Error(t, err) assert.Contains(t, err.Error(), "/nope: no such file or directory") @@ -58,16 +72,19 @@ func TestPipeFileNotExist(t *testing.T) { func TestPipeInvalidNameTemplate(t *testing.T) { folder, err := ioutil.TempDir("", "goreleasertest") assert.NoError(t, err) - var ctx = &context.Context{ - Config: config.Project{ + var ctx = context.New( + config.Project{ Dist: folder, ProjectName: "name", Checksum: config.Checksum{ NameTemplate: "{{ .Pro }_checksums.txt", }, }, - } - ctx.AddArtifact("whatever") + ) + ctx.Artifacts.Add(artifact.Artifact{ + Name: "whatever", + Type: artifact.UploadableBinary, + }) err = Pipe{}.Run(ctx) assert.Error(t, err) assert.Equal(t, `template: checksums:1: unexpected "}" in operand`, err.Error()) @@ -78,15 +95,18 @@ func TestPipeCouldNotOpenChecksumsTxt(t *testing.T) { assert.NoError(t, err) var file = filepath.Join(folder, "checksums.txt") assert.NoError(t, ioutil.WriteFile(file, []byte("some string"), 0000)) - var ctx = &context.Context{ - Config: config.Project{ + var ctx = context.New( + config.Project{ Dist: folder, Checksum: config.Checksum{ NameTemplate: "checksums.txt", }, }, - } - ctx.AddArtifact("nope") + ) + ctx.Artifacts.Add(artifact.Artifact{ + Name: "whatever", + Type: artifact.UploadableBinary, + }) err = Pipe{}.Run(ctx) assert.Error(t, err) assert.Contains(t, err.Error(), "/checksums.txt: permission denied") diff --git a/pipeline/checksums/doc.go b/pipeline/checksums/doc.go new file mode 100644 index 000000000..e2ba0cb42 --- /dev/null +++ b/pipeline/checksums/doc.go @@ -0,0 +1,3 @@ +// Package checksums provides a Pipe that creates .checksums files for +// each artifact. +package checksums