github.com/thriqon/involucro@v1.1.3/integrationtest/wrap_without_workdir_test.go (about)

     1  
     2  package integrationtest
     3  
     4  import (
     5  	"io/ioutil"
     6  	"os"
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/fsouza/go-dockerclient"
    11  	"github.com/involucro/involucro/app"
    12  )
    13  
    14  func TestWrapCurrentDir(t *testing.T) {
    15  	if testing.Short() {
    16  		t.SkipNow()
    17  	}
    18  	dir, err := ioutil.TempDir("", "inttest-58")
    19  	if err != nil {
    20  		t.Fatal(err)
    21  	}
    22  	defer os.RemoveAll(dir)
    23  
    24  	if err := ioutil.WriteFile(filepath.Join(dir, "a"), []byte("123"), 0755); err != nil {
    25  		t.Fatal(err)
    26  	}
    27  
    28  	c, err := docker.NewClientFromEnv()
    29  	if err != nil {
    30  		t.Fatal(err)
    31  	}
    32  	cwd, err := os.Getwd()
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  
    37  	defer func() {
    38  		c.RemoveImage("inttest/58")
    39  		os.Chdir(cwd)
    40  	}()
    41  
    42  	if err := os.Chdir(dir); err != nil {
    43  		t.Fatal(err)
    44  	}
    45  
    46  	if err := app.Main([]string{
    47  		"involucro",
    48  		"-e",
    49  		"inv.task('wrap').wrap('.').inImage('busybox').at('/data').as('inttest/15')",
    50  		"wrap",
    51  	}); err != nil {
    52  		t.Fatal(err)
    53  	}
    54  
    55  	if err := app.Main([]string{
    56  		"involucro",
    57  		"-e",
    58  		"inv.task('x').using('inttest/15').run('grep', '123', '/data/a')",
    59  		"x",
    60  	}); err != nil {
    61  		t.Error(err)
    62  	}
    63  }