github.com/pquerna/agent@v2.1.8+incompatible/agent/artifact_uploader_test.go (about)

     1  package agent
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"path"
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/buildkite/agent/api"
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func findArtifact(artifacts []*api.Artifact, search string) *api.Artifact {
    15  	for _, a := range artifacts {
    16  		if path.Base(a.Path) == search {
    17  			return a
    18  		}
    19  	}
    20  
    21  	return nil
    22  }
    23  
    24  func TestCollect(t *testing.T) {
    25  	wd, _ := os.Getwd()
    26  	root := filepath.Join(wd, "..")
    27  	os.Chdir(root)
    28  
    29  	paths := fmt.Sprintf("%s;%s", filepath.Join("test", "fixtures", "artifacts", "**/*.jpg"), filepath.Join(root, "test", "fixtures", "artifacts", "**/*.gif"))
    30  	uploader := ArtifactUploader{Paths: paths}
    31  
    32  	artifacts, err := uploader.Collect()
    33  
    34  	assert.Nil(t, err)
    35  	assert.Equal(t, len(artifacts), 4)
    36  
    37  	var a *api.Artifact
    38  
    39  	a = findArtifact(artifacts, "Mr Freeze.jpg")
    40  	assert.NotNil(t, a)
    41  	assert.Equal(t, a.Path, "test/fixtures/artifacts/Mr Freeze.jpg")
    42  	assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/Mr Freeze.jpg"))
    43  	assert.Equal(t, a.GlobPath, "test/fixtures/artifacts/**/*.jpg")
    44  	assert.Equal(t, int(a.FileSize), 362371)
    45  	assert.Equal(t, a.Sha1Sum, "f5bc7bc9f5f9c3e543dde0eb44876c6f9acbfb6b")
    46  
    47  	a = findArtifact(artifacts, "Commando.jpg")
    48  	assert.NotNil(t, a)
    49  	assert.Equal(t, a.Path, "test/fixtures/artifacts/folder/Commando.jpg")
    50  	assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/folder/Commando.jpg"))
    51  	assert.Equal(t, a.GlobPath, "test/fixtures/artifacts/**/*.jpg")
    52  	assert.Equal(t, int(a.FileSize), 113000)
    53  	assert.Equal(t, a.Sha1Sum, "811d7cb0317582e22ebfeb929d601cdabea4b3c0")
    54  
    55  	a = findArtifact(artifacts, "The Terminator.jpg")
    56  	assert.NotNil(t, a)
    57  	assert.Equal(t, a.Path, "test/fixtures/artifacts/this is a folder with a space/The Terminator.jpg")
    58  	assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/this is a folder with a space/The Terminator.jpg"))
    59  	assert.Equal(t, a.GlobPath, "test/fixtures/artifacts/**/*.jpg")
    60  	assert.Equal(t, int(a.FileSize), 47301)
    61  	assert.Equal(t, a.Sha1Sum, "ed76566ede9cb6edc975fcadca429665aad8785a")
    62  
    63  	// Need to trim the first charcater because it's path doesn't contain
    64  	// the root, which in this case is /
    65  	a = findArtifact(artifacts, "Smile.gif")
    66  	assert.NotNil(t, a)
    67  	gifPath := filepath.Join(root, "test/fixtures/artifacts/gifs/Smile.gif")
    68  	assert.Equal(t, a.Path, gifPath[1:len(gifPath)])
    69  	assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/gifs/Smile.gif"))
    70  	assert.Equal(t, a.GlobPath, filepath.Join(root, "test/fixtures/artifacts/**/*.gif"))
    71  	assert.Equal(t, int(a.FileSize), 2038453)
    72  	assert.Equal(t, a.Sha1Sum, "bd4caf2e01e59777744ac1d52deafa01c2cb9bfd")
    73  }