ps_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package container // import "github.com/docker/docker/integration/container"
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/api/types/filters"
  7. "github.com/docker/docker/integration/internal/container"
  8. "gotest.tools/v3/assert"
  9. is "gotest.tools/v3/assert/cmp"
  10. )
  11. func TestPsFilter(t *testing.T) {
  12. defer setupTest(t)()
  13. apiClient := testEnv.APIClient()
  14. ctx := context.Background()
  15. prev := container.Create(ctx, t, apiClient)
  16. top := container.Create(ctx, t, apiClient)
  17. next := container.Create(ctx, t, apiClient)
  18. containerIDs := func(containers []types.Container) []string {
  19. var entries []string
  20. for _, c := range containers {
  21. entries = append(entries, c.ID)
  22. }
  23. return entries
  24. }
  25. t.Run("since", func(t *testing.T) {
  26. results, err := apiClient.ContainerList(ctx, types.ContainerListOptions{
  27. All: true,
  28. Filters: filters.NewArgs(filters.Arg("since", top)),
  29. })
  30. assert.NilError(t, err)
  31. assert.Check(t, is.Contains(containerIDs(results), next))
  32. })
  33. t.Run("before", func(t *testing.T) {
  34. results, err := apiClient.ContainerList(ctx, types.ContainerListOptions{
  35. All: true,
  36. Filters: filters.NewArgs(filters.Arg("before", top)),
  37. })
  38. assert.NilError(t, err)
  39. assert.Check(t, is.Contains(containerIDs(results), prev))
  40. })
  41. }