github.com/zhouyu0/docker-note@v0.0.0-20190722021225-b8d3825084db/integration-cli/docker_cli_search_test.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/go-check/check"
     8  	"gotest.tools/assert"
     9  )
    10  
    11  // search for repos named  "registry" on the central registry
    12  func (s *DockerSuite) TestSearchOnCentralRegistry(c *check.C) {
    13  	testRequires(c, Network, DaemonIsLinux)
    14  
    15  	out, _ := dockerCmd(c, "search", "busybox")
    16  	assert.Assert(c, strings.Contains(out, "Busybox base image."), "couldn't find any repository named (or containing) 'Busybox base image.'")
    17  }
    18  
    19  func (s *DockerSuite) TestSearchStarsOptionWithWrongParameter(c *check.C) {
    20  	out, _, err := dockerCmdWithError("search", "--filter", "stars=a", "busybox")
    21  	assert.ErrorContains(c, err, "", out)
    22  	assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
    23  
    24  	out, _, err = dockerCmdWithError("search", "-f", "stars=a", "busybox")
    25  	assert.ErrorContains(c, err, "", out)
    26  	assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
    27  
    28  	out, _, err = dockerCmdWithError("search", "-f", "is-automated=a", "busybox")
    29  	assert.ErrorContains(c, err, "", out)
    30  	assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
    31  
    32  	out, _, err = dockerCmdWithError("search", "-f", "is-official=a", "busybox")
    33  	assert.ErrorContains(c, err, "", out)
    34  	assert.Assert(c, strings.Contains(out, "Invalid filter"), "couldn't find the invalid filter warning")
    35  
    36  	// -s --stars deprecated since Docker 1.13
    37  	out, _, err = dockerCmdWithError("search", "--stars=a", "busybox")
    38  	assert.ErrorContains(c, err, "", out)
    39  	assert.Assert(c, strings.Contains(out, "invalid syntax"), "couldn't find the invalid value warning")
    40  
    41  	// -s --stars deprecated since Docker 1.13
    42  	out, _, err = dockerCmdWithError("search", "-s=-1", "busybox")
    43  	assert.ErrorContains(c, err, "", out)
    44  	assert.Assert(c, strings.Contains(out, "invalid syntax"), "couldn't find the invalid value warning")
    45  }
    46  
    47  // search for repos which start with "ubuntu-" on the central registry
    48  func (s *DockerSuite) TestSearchOnCentralRegistryWithDash(c *check.C) {
    49  	testRequires(c, Network, DaemonIsLinux)
    50  
    51  	dockerCmd(c, "search", "ubuntu-")
    52  }
    53  
    54  // test case for #23055
    55  func (s *DockerSuite) TestSearchWithLimit(c *check.C) {
    56  	testRequires(c, Network, DaemonIsLinux)
    57  
    58  	limit := 10
    59  	out, _, err := dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
    60  	assert.NilError(c, err)
    61  	outSlice := strings.Split(out, "\n")
    62  	assert.Equal(c, len(outSlice), limit+2) // 1 header, 1 carriage return
    63  
    64  	limit = 50
    65  	out, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
    66  	assert.NilError(c, err)
    67  	outSlice = strings.Split(out, "\n")
    68  	assert.Equal(c, len(outSlice), limit+2) // 1 header, 1 carriage return
    69  
    70  	limit = 100
    71  	out, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
    72  	assert.NilError(c, err)
    73  	outSlice = strings.Split(out, "\n")
    74  	assert.Equal(c, len(outSlice), limit+2) // 1 header, 1 carriage return
    75  
    76  	limit = 0
    77  	_, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
    78  	assert.ErrorContains(c, err, "")
    79  
    80  	limit = 200
    81  	_, _, err = dockerCmdWithError("search", fmt.Sprintf("--limit=%d", limit), "docker")
    82  	assert.ErrorContains(c, err, "")
    83  }