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  }