1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-03-17 20:47:50 +02:00

test: fixed tests

This commit is contained in:
Carlos Alexandro Becker 2017-12-29 17:35:22 -02:00
parent 1d0911ba1f
commit 6b0e6686a5
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
3 changed files with 50 additions and 24 deletions

View File

@ -6,6 +6,7 @@ import (
"path/filepath"
"strconv"
"testing"
"time"
"github.com/goreleaser/goreleaser/config"
"github.com/goreleaser/goreleaser/internal/testlib"
@ -21,6 +22,7 @@ func TestRelease(t *testing.T) {
_, back := setup(t)
defer back()
var flags = fakeFlags{
t: t,
flags: map[string]string{
"skip-publish": "true",
"skip-validate": "true",
@ -35,6 +37,7 @@ func TestSnapshotRelease(t *testing.T) {
_, back := setup(t)
defer back()
var flags = fakeFlags{
t: t,
flags: map[string]string{
"snapshot": "true",
"parallelism": "4",
@ -45,6 +48,7 @@ func TestSnapshotRelease(t *testing.T) {
func TestConfigFileIsSetAndDontExist(t *testing.T) {
var flags = fakeFlags{
t: t,
flags: map[string]string{
"config": "/this/wont/exist",
},
@ -70,6 +74,7 @@ func TestConfigFlagNotSetButExists(t *testing.T) {
),
)
var flags = fakeFlags{
t: t,
flags: map[string]string{},
}
assert.Equal(t, name, getConfigFile(flags))
@ -79,6 +84,7 @@ func TestConfigFlagNotSetButExists(t *testing.T) {
func TestReleaseNotesFileDontExist(t *testing.T) {
var flags = fakeFlags{
t: t,
flags: map[string]string{
"release-notes": "/this/also/wont/exist",
},
@ -92,6 +98,7 @@ func TestCustomReleaseNotesFile(t *testing.T) {
var releaseNotes = filepath.Join(folder, "notes.md")
createFile(t, releaseNotes, "nothing important at all")
var flags = fakeFlags{
t: t,
flags: map[string]string{
"release-notes": releaseNotes,
"skip-publish": "true",
@ -107,6 +114,7 @@ func TestBrokenPipe(t *testing.T) {
defer back()
createFile(t, "main.go", "not a valid go file")
var flags = fakeFlags{
t: t,
flags: map[string]string{
"skip-publish": "true",
"skip-validate": "true",
@ -149,6 +157,7 @@ func TestInitProjectDefaultPipeFails(t *testing.T) {
// fakeFlags is a mock of the cli flags
type fakeFlags struct {
t *testing.T
flags map[string]string
}
@ -169,6 +178,12 @@ func (f fakeFlags) Bool(s string) bool {
return f.flags[s] == "true"
}
func (f fakeFlags) Duration(s string) time.Duration {
result, err := time.ParseDuration(f.flags[s])
assert.NoError(f.t, err)
return result
}
func setup(t *testing.T) (current string, back func()) {
folder, err := ioutil.TempDir("", "goreleaser")
assert.NoError(t, err)

View File

@ -21,11 +21,21 @@ func TestPipeDescription(t *testing.T) {
}
func TestRun(t *testing.T) {
assert.NoError(t, run(buildtarget.Runtime, []string{"go", "list", "./..."}, emptyEnv))
assert.NoError(t, run(
context.New(config.Project{}),
buildtarget.Runtime,
[]string{"go", "list", "./..."},
emptyEnv,
))
}
func TestRunInvalidCommand(t *testing.T) {
assert.Error(t, run(buildtarget.Runtime, []string{"gggggo", "nope"}, emptyEnv))
assert.Error(t, run(
context.New(config.Project{}),
buildtarget.Runtime,
[]string{"gggggo", "nope"},
emptyEnv,
))
}
func TestBuild(t *testing.T) {

View File

@ -203,30 +203,28 @@ func TestRunPipe(t *testing.T) {
for name, docker := range table {
t.Run(name, func(tt *testing.T) {
folder, err := ioutil.TempDir("", "archivetest")
assert.NoError(t, err)
assert.NoError(tt, err)
var dist = filepath.Join(folder, "dist")
assert.NoError(t, os.Mkdir(dist, 0755))
assert.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755))
assert.NoError(tt, os.Mkdir(dist, 0755))
assert.NoError(tt, os.Mkdir(filepath.Join(dist, "mybin"), 0755))
var binPath = filepath.Join(dist, "mybin", "mybin")
_, err = os.Create(binPath)
assert.NoError(t, err)
assert.NoError(tt, err)
var ctx = &context.Context{
Version: "1.0.0",
Publish: docker.publish,
Parallelism: 4,
Artifacts: artifact.New(),
Git: context.GitInfo{
CurrentTag: "v1.0.0",
var ctx = context.New(config.Project{
ProjectName: "mybin",
Dist: dist,
Dockers: []config.Docker{
docker.docker,
},
Config: config.Project{
ProjectName: "mybin",
Dist: dist,
Dockers: []config.Docker{
docker.docker,
},
},
Env: map[string]string{"FOO": "123"},
})
ctx.Publish = true
ctx.Env = map[string]string{
"FOO": "123",
}
ctx.Version = "1.0.0"
ctx.Git = context.GitInfo{
CurrentTag: "v1.0.0",
}
for _, os := range []string{"linux", "darwin"} {
for _, arch := range []string{"amd64", "386"} {
@ -252,14 +250,17 @@ func TestRunPipe(t *testing.T) {
if docker.err == "" {
assert.NoError(tt, err)
} else {
assert.Contains(tt, err.Error(), docker.err)
assert.Error(tt, err)
if err != nil {
assert.Contains(tt, err.Error(), docker.err)
}
}
// this might should not fail as the image should have been created when
// the step ran
for _, img := range docker.expect {
t.Log("removing docker image", img)
assert.NoError(t, exec.Command("docker", "rmi", img).Run(), "could not delete image %s", img)
tt.Log("removing docker image", img)
assert.NoError(tt, exec.Command("docker", "rmi", img).Run(), "could not delete image %s", img)
}
})