github.com/ssube/gitlab-ci-multi-runner@v1.2.1-0.20160607142738-b8d1285632e6/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-ci-multi-runner/common"
    10  	"gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers"
    11  	"io/ioutil"
    12  )
    13  
    14  var UploaderCredentials = common.BuildCredentials{
    15  	ID:    1000,
    16  	Token: "test",
    17  	URL:   "test",
    18  }
    19  
    20  func TestArtifactsUploaderRequirements(t *testing.T) {
    21  	helpers.MakeFatalToPanic()
    22  
    23  	cmd := ArtifactsUploaderCommand{}
    24  	assert.Panics(t, func() {
    25  		cmd.Execute(nil)
    26  	})
    27  }
    28  
    29  func TestArtifactsUploaderTooLarge(t *testing.T) {
    30  	network := &testNetwork{
    31  		uploadState: common.UploadTooLarge,
    32  	}
    33  	cmd := ArtifactsUploaderCommand{
    34  		BuildCredentials: UploaderCredentials,
    35  		network:          network,
    36  	}
    37  
    38  	assert.Panics(t, func() {
    39  		cmd.Execute(nil)
    40  	})
    41  
    42  	assert.Equal(t, 1, network.uploadCalled)
    43  }
    44  
    45  func TestArtifactsUploaderForbidden(t *testing.T) {
    46  	network := &testNetwork{
    47  		uploadState: common.UploadForbidden,
    48  	}
    49  	cmd := ArtifactsUploaderCommand{
    50  		BuildCredentials: UploaderCredentials,
    51  		network:          network,
    52  	}
    53  
    54  	assert.Panics(t, func() {
    55  		cmd.Execute(nil)
    56  	})
    57  
    58  	assert.Equal(t, 1, network.uploadCalled)
    59  }
    60  
    61  func TestArtifactsUploaderRetry(t *testing.T) {
    62  	network := &testNetwork{
    63  		uploadState: common.UploadFailed,
    64  	}
    65  	cmd := ArtifactsUploaderCommand{
    66  		BuildCredentials: UploaderCredentials,
    67  		network:          network,
    68  		retryHelper: retryHelper{
    69  			Retry: 2,
    70  		},
    71  	}
    72  
    73  	assert.Panics(t, func() {
    74  		cmd.Execute(nil)
    75  	})
    76  
    77  	assert.Equal(t, 3, network.uploadCalled)
    78  }
    79  
    80  func TestArtifactsUploaderSucceeded(t *testing.T) {
    81  	network := &testNetwork{
    82  		uploadState: common.UploadSucceeded,
    83  	}
    84  	cmd := ArtifactsUploaderCommand{
    85  		BuildCredentials: UploaderCredentials,
    86  		network:          network,
    87  		fileArchiver: fileArchiver{
    88  			Paths: []string{artifactsTestArchivedFile},
    89  		},
    90  	}
    91  
    92  	ioutil.WriteFile(artifactsTestArchivedFile, nil, 0600)
    93  	defer os.Remove(artifactsTestArchivedFile)
    94  
    95  	cmd.Execute(nil)
    96  	assert.Equal(t, 1, network.uploadCalled)
    97  	fi, _ := os.Stat(artifactsTestArchivedFile)
    98  	assert.NotNil(t, fi)
    99  }