github.com/yuanlv/docker@v1.8.1/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 }