github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/bobtask/artifact_test.go (about) 1 package bobtask 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/Benchkram/bob/pkg/file" 10 "github.com/Benchkram/bob/pkg/store/filestore" 11 "github.com/Benchkram/errz" 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestPackAndUnpackArtifacts(t *testing.T) { 16 17 testdir, err := ioutil.TempDir("", "test-pack-and-unpack-artifact") 18 assert.Nil(t, err) 19 storage, err := ioutil.TempDir("", "test-pack-and-unpack-artifact-store") 20 assert.Nil(t, err) 21 defer func() { 22 os.RemoveAll(testdir) 23 os.RemoveAll(storage) 24 }() 25 26 artifactStore := filestore.New(storage) 27 28 assert.Nil(t, os.MkdirAll(filepath.Join(testdir, ".bbuild"), 0774)) 29 assert.Nil(t, os.MkdirAll(filepath.Join(testdir, ".bbuild/dirone"), 0774)) 30 assert.Nil(t, os.WriteFile(filepath.Join(testdir, ".bbuild/dirone/fileone"), []byte("fileone"), 0774)) 31 assert.Nil(t, os.WriteFile(filepath.Join(testdir, ".bbuild/dirone/filetwo"), []byte("filetwo"), 0774)) 32 assert.Nil(t, os.MkdirAll(filepath.Join(testdir, ".bbuild/dirtwo"), 0774)) 33 assert.Nil(t, os.WriteFile(filepath.Join(testdir, ".bbuild/dirtwo/fileone"), []byte("fileone"), 0774)) 34 assert.Nil(t, os.WriteFile(filepath.Join(testdir, ".bbuild/dirtwo/filetwo"), []byte("filetwo"), 0774)) 35 36 tsk := Make() 37 tsk.dir = testdir 38 tsk.local = artifactStore 39 tsk.name = "mytaskname" 40 41 tsk.TargetDirty = ".bbuild/dirone/" 42 err = tsk.parseTargets() 43 assert.Nil(t, err) 44 45 err = tsk.ArtifactPack("aaa") 46 errz.Log(err) 47 assert.Nil(t, err) 48 49 err = os.RemoveAll(filepath.Join(testdir, ".build/dirone")) 50 assert.Nil(t, err) 51 52 success, err := tsk.ArtifactUnpack("aaa") 53 assert.Nil(t, err) 54 assert.True(t, success) 55 56 assert.True(t, file.Exists(filepath.Join(testdir, ".bbuild/dirone/fileone"))) 57 assert.True(t, file.Exists(filepath.Join(testdir, ".bbuild/dirone/filetwo"))) 58 59 // assure artifact inspect returns without an error 60 _, err = tsk.ArtifactInspect("aaa") 61 assert.Nil(t, err) 62 }