github.com/rita33cool1/iot-system-gateway@v0.0.0-20200911033302-e65bde238cc5/docker-engine/integration/container/copy_test.go (about) 1 package container // import "github.com/docker/docker/integration/container" 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/client" 10 "github.com/docker/docker/integration/internal/container" 11 "github.com/docker/docker/internal/testutil" 12 "github.com/gotestyourself/gotestyourself/assert" 13 is "github.com/gotestyourself/gotestyourself/assert/cmp" 14 "github.com/gotestyourself/gotestyourself/skip" 15 ) 16 17 func TestCopyFromContainerPathDoesNotExist(t *testing.T) { 18 defer setupTest(t)() 19 20 ctx := context.Background() 21 apiclient := testEnv.APIClient() 22 cid := container.Create(t, ctx, apiclient) 23 24 _, _, err := apiclient.CopyFromContainer(ctx, cid, "/dne") 25 assert.Assert(t, client.IsErrNotFound(err)) 26 expected := fmt.Sprintf("No such container:path: %s:%s", cid, "/dne") 27 testutil.ErrorContains(t, err, expected) 28 } 29 30 func TestCopyFromContainerPathIsNotDir(t *testing.T) { 31 defer setupTest(t)() 32 skip.If(t, testEnv.OSType == "windows") 33 34 ctx := context.Background() 35 apiclient := testEnv.APIClient() 36 cid := container.Create(t, ctx, apiclient) 37 38 _, _, err := apiclient.CopyFromContainer(ctx, cid, "/etc/passwd/") 39 assert.Assert(t, is.Contains(err.Error(), "not a directory")) 40 } 41 42 func TestCopyToContainerPathDoesNotExist(t *testing.T) { 43 defer setupTest(t)() 44 skip.If(t, testEnv.OSType == "windows") 45 46 ctx := context.Background() 47 apiclient := testEnv.APIClient() 48 cid := container.Create(t, ctx, apiclient) 49 50 err := apiclient.CopyToContainer(ctx, cid, "/dne", nil, types.CopyToContainerOptions{}) 51 assert.Assert(t, client.IsErrNotFound(err)) 52 expected := fmt.Sprintf("No such container:path: %s:%s", cid, "/dne") 53 testutil.ErrorContains(t, err, expected) 54 } 55 56 func TestCopyToContainerPathIsNotDir(t *testing.T) { 57 defer setupTest(t)() 58 skip.If(t, testEnv.OSType == "windows") 59 60 ctx := context.Background() 61 apiclient := testEnv.APIClient() 62 cid := container.Create(t, ctx, apiclient) 63 64 err := apiclient.CopyToContainer(ctx, cid, "/etc/passwd/", nil, types.CopyToContainerOptions{}) 65 assert.Assert(t, is.Contains(err.Error(), "not a directory")) 66 }