create_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package container
  2. import (
  3. "context"
  4. "strconv"
  5. "testing"
  6. "github.com/docker/docker/api/types/container"
  7. "github.com/docker/docker/api/types/network"
  8. "github.com/docker/docker/integration/util/request"
  9. "github.com/docker/docker/internal/testutil"
  10. )
  11. func TestCreateFailsWhenIdentifierDoesNotExist(t *testing.T) {
  12. defer setupTest(t)()
  13. client := request.NewAPIClient(t)
  14. testCases := []struct {
  15. doc string
  16. image string
  17. expectedError string
  18. }{
  19. {
  20. doc: "image and tag",
  21. image: "test456:v1",
  22. expectedError: "No such image: test456:v1",
  23. },
  24. {
  25. doc: "image no tag",
  26. image: "test456",
  27. expectedError: "No such image: test456",
  28. },
  29. {
  30. doc: "digest",
  31. image: "sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa",
  32. expectedError: "No such image: sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa",
  33. },
  34. }
  35. for _, tc := range testCases {
  36. tc := tc
  37. t.Run(tc.doc, func(t *testing.T) {
  38. t.Parallel()
  39. _, err := client.ContainerCreate(context.Background(),
  40. &container.Config{Image: tc.image},
  41. &container.HostConfig{},
  42. &network.NetworkingConfig{},
  43. "foo",
  44. )
  45. testutil.ErrorContains(t, err, tc.expectedError)
  46. })
  47. }
  48. }
  49. func TestCreateWithInvalidEnv(t *testing.T) {
  50. defer setupTest(t)()
  51. client := request.NewAPIClient(t)
  52. testCases := []struct {
  53. env string
  54. expectedError string
  55. }{
  56. {
  57. env: "",
  58. expectedError: "invalid environment variable:",
  59. },
  60. {
  61. env: "=",
  62. expectedError: "invalid environment variable: =",
  63. },
  64. {
  65. env: "=foo",
  66. expectedError: "invalid environment variable: =foo",
  67. },
  68. }
  69. for index, tc := range testCases {
  70. tc := tc
  71. t.Run(strconv.Itoa(index), func(t *testing.T) {
  72. t.Parallel()
  73. _, err := client.ContainerCreate(context.Background(),
  74. &container.Config{
  75. Image: "busybox",
  76. Env: []string{tc.env},
  77. },
  78. &container.HostConfig{},
  79. &network.NetworkingConfig{},
  80. "foo",
  81. )
  82. testutil.ErrorContains(t, err, tc.expectedError)
  83. })
  84. }
  85. }