1package container // import "github.com/docker/docker/integration/container" 2 3import ( 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 "gotest.tools/assert" 12 is "gotest.tools/assert/cmp" 13 "gotest.tools/skip" 14) 15 16func TestCopyFromContainerPathDoesNotExist(t *testing.T) { 17 defer setupTest(t)() 18 19 ctx := context.Background() 20 apiclient := testEnv.APIClient() 21 cid := container.Create(t, ctx, apiclient) 22 23 _, _, err := apiclient.CopyFromContainer(ctx, cid, "/dne") 24 assert.Check(t, client.IsErrNotFound(err)) 25 expected := fmt.Sprintf("No such container:path: %s:%s", cid, "/dne") 26 assert.Check(t, is.ErrorContains(err, expected)) 27} 28 29func TestCopyFromContainerPathIsNotDir(t *testing.T) { 30 defer setupTest(t)() 31 skip.If(t, testEnv.OSType == "windows") 32 33 ctx := context.Background() 34 apiclient := testEnv.APIClient() 35 cid := container.Create(t, ctx, apiclient) 36 37 _, _, err := apiclient.CopyFromContainer(ctx, cid, "/etc/passwd/") 38 assert.Assert(t, is.ErrorContains(err, "not a directory")) 39} 40 41func TestCopyToContainerPathDoesNotExist(t *testing.T) { 42 defer setupTest(t)() 43 skip.If(t, testEnv.OSType == "windows") 44 45 ctx := context.Background() 46 apiclient := testEnv.APIClient() 47 cid := container.Create(t, ctx, apiclient) 48 49 err := apiclient.CopyToContainer(ctx, cid, "/dne", nil, types.CopyToContainerOptions{}) 50 assert.Check(t, client.IsErrNotFound(err)) 51 expected := fmt.Sprintf("No such container:path: %s:%s", cid, "/dne") 52 assert.Check(t, is.ErrorContains(err, expected)) 53} 54 55func TestCopyToContainerPathIsNotDir(t *testing.T) { 56 defer setupTest(t)() 57 skip.If(t, testEnv.OSType == "windows") 58 59 ctx := context.Background() 60 apiclient := testEnv.APIClient() 61 cid := container.Create(t, ctx, apiclient) 62 63 err := apiclient.CopyToContainer(ctx, cid, "/etc/passwd/", nil, types.CopyToContainerOptions{}) 64 assert.Assert(t, is.ErrorContains(err, "not a directory")) 65} 66