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  }