deploy_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package stack
  2. import (
  3. "testing"
  4. composetypes "github.com/aanand/compose-file/types"
  5. "github.com/docker/docker/api/types/mount"
  6. "github.com/docker/docker/api/types/swarm"
  7. "github.com/docker/docker/pkg/testutil/assert"
  8. )
  9. func TestConvertVolumeToMountAnonymousVolume(t *testing.T) {
  10. stackVolumes := map[string]composetypes.VolumeConfig{}
  11. namespace := namespace{name: "foo"}
  12. expected := mount.Mount{
  13. Type: mount.TypeVolume,
  14. Target: "/foo/bar",
  15. }
  16. mnt, err := convertVolumeToMount("/foo/bar", stackVolumes, namespace)
  17. assert.NilError(t, err)
  18. assert.DeepEqual(t, mnt, expected)
  19. }
  20. func TestConvertVolumeToMountInvalidFormat(t *testing.T) {
  21. namespace := namespace{name: "foo"}
  22. invalids := []string{"::", "::cc", ":bb:", "aa::", "aa::cc", "aa:bb:", " : : ", " : :cc", " :bb: ", "aa: : ", "aa: :cc", "aa:bb: "}
  23. for _, vol := range invalids {
  24. _, err := convertVolumeToMount(vol, map[string]composetypes.VolumeConfig{}, namespace)
  25. assert.Error(t, err, "invalid volume: "+vol)
  26. }
  27. }
  28. func TestConvertResourcesOnlyMemory(t *testing.T) {
  29. source := composetypes.Resources{
  30. Limits: &composetypes.Resource{
  31. MemoryBytes: composetypes.UnitBytes(300000000),
  32. },
  33. Reservations: &composetypes.Resource{
  34. MemoryBytes: composetypes.UnitBytes(200000000),
  35. },
  36. }
  37. resources, err := convertResources(source)
  38. assert.NilError(t, err)
  39. expected := &swarm.ResourceRequirements{
  40. Limits: &swarm.Resources{
  41. MemoryBytes: 300000000,
  42. },
  43. Reservations: &swarm.Resources{
  44. MemoryBytes: 200000000,
  45. },
  46. }
  47. assert.DeepEqual(t, resources, expected)
  48. }