Pārlūkot izejas kodu

integration/internal/container: refactor CreateExpectingErr

This utility was only used for a single test, and it was very limited
in functionality as it only allowed for a certain error-string to be
matched.

Let's change it into a more generic function; a helper that allows a
container to be created from a `TestContainerConfig` (which can be
constructed using `NewTestConfig`) and that returns the response from
client.ContainerCreate(), so that any result from that can be tested,
leaving it up to the test to check the results.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 1 gadu atpakaļ
vecāks
revīzija
74feadacf8

+ 2 - 1
integration/container/run_cgroupns_linux_test.go

@@ -40,7 +40,8 @@ func testCreateFailureWithCgroupNs(t *testing.T, daemonNsMode string, errStr str
 
 	d.StartWithBusybox(t)
 	defer d.Stop(t)
-	container.CreateExpectingErr(ctx, t, apiClient, errStr, containerOpts...)
+	_, err := container.CreateFromConfig(ctx, apiClient, container.NewTestConfig(containerOpts...))
+	assert.ErrorContains(t, err, errStr)
 }
 
 func TestCgroupNamespacesRun(t *testing.T) {

+ 8 - 5
integration/internal/container/container.go

@@ -62,11 +62,14 @@ func Create(ctx context.Context, t *testing.T, apiClient client.APIClient, ops .
 	return c.ID
 }
 
-// CreateExpectingErr creates a container, expecting an error with the specified message
-func CreateExpectingErr(ctx context.Context, t *testing.T, apiClient client.APIClient, errMsg string, ops ...func(*TestContainerConfig)) {
-	config := NewTestConfig(ops...)
-	_, err := apiClient.ContainerCreate(ctx, config.Config, config.HostConfig, config.NetworkingConfig, config.Platform, config.Name)
-	assert.ErrorContains(t, err, errMsg)
+// CreateFromConfig creates a container from the given TestContainerConfig.
+//
+// Example use:
+//
+//	ctr, err := container.CreateFromConfig(ctx, apiClient, container.NewTestConfig(container.WithAutoRemove))
+//	assert.Check(t, err)
+func CreateFromConfig(ctx context.Context, apiClient client.APIClient, config *TestContainerConfig) (container.CreateResponse, error) {
+	return apiClient.ContainerCreate(ctx, config.Config, config.HostConfig, config.NetworkingConfig, config.Platform, config.Name)
 }
 
 // Run creates and start a container with the specified options