github.com/tonistiigi/docker@v0.10.1-0.20240229224939-974013b0dc6a/integration/container/ps_test.go (about)

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