Skip to content

Commit 58d1ff3

Browse files
thaJeztahlifubang
authored andcommitted
Merge pull request docker#1377 from adshmh/migrate-TestExportContainerWithOutputAndImportImage-from-moby
add a unit test to cover container export command output file option Signed-off-by: Lifubang <[email protected]>
2 parents b4180e8 + fc1e11d commit 58d1ff3

2 files changed

Lines changed: 41 additions & 0 deletions

File tree

cli/command/container/client_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type fakeClient struct {
2424
logFunc func(string, types.ContainerLogsOptions) (io.ReadCloser, error)
2525
waitFunc func(string) (<-chan container.ContainerWaitOKBody, <-chan error)
2626
containerListFunc func(types.ContainerListOptions) ([]types.Container, error)
27+
containerExportFunc func(string) (io.ReadCloser, error)
2728
Version string
2829
}
2930

@@ -124,3 +125,10 @@ func (f *fakeClient) ContainerStart(_ context.Context, container string, options
124125
}
125126
return nil
126127
}
128+
129+
func (f *fakeClient) ContainerExport(_ context.Context, container string) (io.ReadCloser, error) {
130+
if f.containerExportFunc != nil {
131+
return f.containerExportFunc(container)
132+
}
133+
return nil, nil
134+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package container
2+
3+
import (
4+
"io"
5+
"io/ioutil"
6+
"strings"
7+
"testing"
8+
9+
"github.com/docker/cli/internal/test"
10+
"gotest.tools/assert"
11+
"gotest.tools/fs"
12+
)
13+
14+
func TestContainerExportOutputToFile(t *testing.T) {
15+
dir := fs.NewDir(t, "export-test")
16+
defer dir.Remove()
17+
18+
cli := test.NewFakeCli(&fakeClient{
19+
containerExportFunc: func(container string) (io.ReadCloser, error) {
20+
return ioutil.NopCloser(strings.NewReader("bar")), nil
21+
},
22+
})
23+
cmd := NewExportCommand(cli)
24+
cmd.SetOutput(ioutil.Discard)
25+
cmd.SetArgs([]string{"-o", dir.Join("foo"), "container"})
26+
assert.NilError(t, cmd.Execute())
27+
28+
expected := fs.Expected(t,
29+
fs.WithFile("foo", "bar", fs.MatchAnyFileMode),
30+
)
31+
32+
assert.Assert(t, fs.Equal(dir.Path(), expected))
33+
}

0 commit comments

Comments
 (0)