| package container // import "github.com/docker/docker/integration/container" | |
| import ( | |
| "context" | |
| "testing" | |
| "github.com/docker/docker/api/types" | |
| "github.com/docker/docker/api/types/filters" | |
| "github.com/docker/docker/integration/internal/container" | |
| "gotest.tools/v3/assert" | |
| is "gotest.tools/v3/assert/cmp" | |
| ) | |
| func TestPsFilter(t *testing.T) { | |
| defer setupTest(t)() | |
| client := testEnv.APIClient() | |
| ctx := context.Background() | |
| prev := container.Create(ctx, t, client) | |
| top := container.Create(ctx, t, client) | |
| next := container.Create(ctx, t, client) | |
| containerIDs := func(containers []types.Container) []string { | |
| var entries []string | |
| for _, c := range containers { | |
| entries = append(entries, c.ID) | |
| } | |
| return entries | |
| } | |
| t.Run("since", func(t *testing.T) { | |
| results, err := client.ContainerList(ctx, types.ContainerListOptions{ | |
| All: true, | |
| Filters: filters.NewArgs(filters.Arg("since", top)), | |
| }) | |
| assert.NilError(t, err) | |
| assert.Check(t, is.Contains(containerIDs(results), next)) | |
| }) | |
| t.Run("before", func(t *testing.T) { | |
| results, err := client.ContainerList(ctx, types.ContainerListOptions{ | |
| All: true, | |
| Filters: filters.NewArgs(filters.Arg("before", top)), | |
| }) | |
| assert.NilError(t, err) | |
| assert.Check(t, is.Contains(containerIDs(results), prev)) | |
| }) | |
| } |