github.com/alloyci/alloy-runner@v1.0.1-0.20180222164613-925503ccafd6/commands/helpers/artifacts_uploader_test.go (about) 1 package helpers 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 "gitlab.com/gitlab-org/gitlab-runner/common" 10 "gitlab.com/gitlab-org/gitlab-runner/helpers" 11 "io/ioutil" 12 ) 13 14 var UploaderCredentials = common.JobCredentials{ 15 ID: 1000, 16 Token: "test", 17 URL: "test", 18 } 19 20 func TestArtifactsUploaderRequirements(t *testing.T) { 21 removeHook := helpers.MakeFatalToPanic() 22 defer removeHook() 23 24 cmd := ArtifactsUploaderCommand{} 25 assert.Panics(t, func() { 26 cmd.Execute(nil) 27 }) 28 } 29 30 func TestArtifactsUploaderTooLarge(t *testing.T) { 31 network := &testNetwork{ 32 uploadState: common.UploadTooLarge, 33 } 34 cmd := ArtifactsUploaderCommand{ 35 JobCredentials: UploaderCredentials, 36 network: network, 37 } 38 39 removeHook := helpers.MakeFatalToPanic() 40 defer removeHook() 41 42 assert.Panics(t, func() { 43 cmd.Execute(nil) 44 }) 45 46 assert.Equal(t, 1, network.uploadCalled) 47 } 48 49 func TestArtifactsUploaderForbidden(t *testing.T) { 50 network := &testNetwork{ 51 uploadState: common.UploadForbidden, 52 } 53 cmd := ArtifactsUploaderCommand{ 54 JobCredentials: UploaderCredentials, 55 network: network, 56 } 57 58 removeHook := helpers.MakeFatalToPanic() 59 defer removeHook() 60 61 assert.Panics(t, func() { 62 cmd.Execute(nil) 63 }) 64 65 assert.Equal(t, 1, network.uploadCalled) 66 } 67 68 func TestArtifactsUploaderRetry(t *testing.T) { 69 network := &testNetwork{ 70 uploadState: common.UploadFailed, 71 } 72 cmd := ArtifactsUploaderCommand{ 73 JobCredentials: UploaderCredentials, 74 network: network, 75 retryHelper: retryHelper{ 76 Retry: 2, 77 }, 78 } 79 80 removeHook := helpers.MakeFatalToPanic() 81 defer removeHook() 82 83 assert.Panics(t, func() { 84 cmd.Execute(nil) 85 }) 86 87 assert.Equal(t, 3, network.uploadCalled) 88 } 89 90 func TestArtifactsUploaderSucceeded(t *testing.T) { 91 network := &testNetwork{ 92 uploadState: common.UploadSucceeded, 93 } 94 cmd := ArtifactsUploaderCommand{ 95 JobCredentials: UploaderCredentials, 96 network: network, 97 fileArchiver: fileArchiver{ 98 Paths: []string{artifactsTestArchivedFile}, 99 }, 100 } 101 102 ioutil.WriteFile(artifactsTestArchivedFile, nil, 0600) 103 defer os.Remove(artifactsTestArchivedFile) 104 105 cmd.Execute(nil) 106 assert.Equal(t, 1, network.uploadCalled) 107 fi, _ := os.Stat(artifactsTestArchivedFile) 108 assert.NotNil(t, fi) 109 }