github.com/slene/docker@v1.8.0-rc1/integration-cli/docker_cli_rename_test.go (about)

     1  package main
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/docker/docker/pkg/stringid"
     7  	"github.com/go-check/check"
     8  )
     9  
    10  func (s *DockerSuite) TestRenameStoppedContainer(c *check.C) {
    11  	out, _ := dockerCmd(c, "run", "--name", "first_name", "-d", "busybox", "sh")
    12  
    13  	cleanedContainerID := strings.TrimSpace(out)
    14  	dockerCmd(c, "wait", cleanedContainerID)
    15  
    16  	name, err := inspectField(cleanedContainerID, "Name")
    17  	newName := "new_name" + stringid.GenerateRandomID()
    18  	dockerCmd(c, "rename", "first_name", newName)
    19  
    20  	name, err = inspectField(cleanedContainerID, "Name")
    21  	if err != nil {
    22  		c.Fatal(err)
    23  	}
    24  	if name != "/"+newName {
    25  		c.Fatal("Failed to rename container ", name)
    26  	}
    27  
    28  }
    29  
    30  func (s *DockerSuite) TestRenameRunningContainer(c *check.C) {
    31  	out, _ := dockerCmd(c, "run", "--name", "first_name", "-d", "busybox", "sh")
    32  
    33  	newName := "new_name" + stringid.GenerateRandomID()
    34  	cleanedContainerID := strings.TrimSpace(out)
    35  	dockerCmd(c, "rename", "first_name", newName)
    36  
    37  	name, err := inspectField(cleanedContainerID, "Name")
    38  	if err != nil {
    39  		c.Fatal(err)
    40  	}
    41  	if name != "/"+newName {
    42  		c.Fatal("Failed to rename container ")
    43  	}
    44  }
    45  
    46  func (s *DockerSuite) TestRenameCheckNames(c *check.C) {
    47  	dockerCmd(c, "run", "--name", "first_name", "-d", "busybox", "sh")
    48  
    49  	newName := "new_name" + stringid.GenerateRandomID()
    50  	dockerCmd(c, "rename", "first_name", newName)
    51  
    52  	name, err := inspectField(newName, "Name")
    53  	if err != nil {
    54  		c.Fatal(err)
    55  	}
    56  	if name != "/"+newName {
    57  		c.Fatal("Failed to rename container ")
    58  	}
    59  
    60  	name, err = inspectField("first_name", "Name")
    61  	if err == nil && !strings.Contains(err.Error(), "No such image or container: first_name") {
    62  		c.Fatal(err)
    63  	}
    64  }
    65  
    66  func (s *DockerSuite) TestRenameInvalidName(c *check.C) {
    67  	dockerCmd(c, "run", "--name", "myname", "-d", "busybox", "top")
    68  
    69  	if out, _, err := dockerCmdWithError(c, "rename", "myname", "new:invalid"); err == nil || !strings.Contains(out, "Invalid container name") {
    70  		c.Fatalf("Renaming container to invalid name should have failed: %s\n%v", out, err)
    71  	}
    72  
    73  	if out, _, err := dockerCmdWithError(c, "ps", "-a"); err != nil || !strings.Contains(out, "myname") {
    74  		c.Fatalf("Output of docker ps should have included 'myname': %s\n%v", out, err)
    75  	}
    76  }