From 8e8cac82637952d49f8df42a3164478f13978c90 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 2 Nov 2018 09:49:50 +0100 Subject: [PATCH] Some improvements to TestVolumesInspect Some improvements in this test; - use the volume-information that's returned by VolumeCreate as "expected" - don't use an explict name for the volume, as it was only used to reference the volume for inspection - improve the test-output on failure, so that "expected" and "actual" values are printed Without this patch applied; === RUN TestVolumesInspect --- FAIL: TestVolumesInspect (0.02s) volume_test.go:108: assertion failed: false (bool) != true (true bool): Time Volume is CreatedAt not equal to current time FAIL With this patch applied; === RUN TestVolumesInspect --- FAIL: TestVolumesInspect (0.02s) volume_test.go:95: assertion failed: expression is false: createdAt.Truncate(time.Minute).Equal(now.Truncate(time.Minute)): CreatedAt (2018-11-01 16:15:20 +0000 UTC) not equal to creation time (2018-11-01 16:15:20.2421166 +0000 UTC m=+13.733512701) FAIL Signed-off-by: Sebastiaan van Stijn --- integration/volume/volume_test.go | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/integration/volume/volume_test.go b/integration/volume/volume_test.go index 0906c535f7515..fc5a0b87ecb23 100644 --- a/integration/volume/volume_test.go +++ b/integration/volume/volume_test.go @@ -82,33 +82,19 @@ func TestVolumesInspect(t *testing.T) { client := request.NewAPIClient(t) ctx := context.Background() - // sampling current time minus a minute so to now have false positive in case of delays - now := time.Now().Truncate(time.Minute) - - name := t.Name() - _, err := client.VolumeCreate(ctx, volumetypes.VolumeCreateBody{ - Name: name, - }) + now := time.Now() + vol, err := client.VolumeCreate(ctx, volumetypes.VolumeCreateBody{}) assert.NilError(t, err) - vol, err := client.VolumeInspect(ctx, name) + inspected, err := client.VolumeInspect(ctx, vol.Name) assert.NilError(t, err) - expected := types.Volume{ - // Ignore timestamp of CreatedAt - CreatedAt: vol.CreatedAt, - Driver: "local", - Scope: "local", - Name: name, - Mountpoint: fmt.Sprintf("%s/volumes/%s/_data", testEnv.DaemonInfo.DockerRootDir, name), - } - assert.Check(t, is.DeepEqual(vol, expected, cmpopts.EquateEmpty())) + assert.Check(t, is.DeepEqual(inspected, vol, cmpopts.EquateEmpty())) - // comparing CreatedAt field time for the new volume to now. Removing a minute from both to avoid false positive - testCreatedAt, err := time.Parse(time.RFC3339, strings.TrimSpace(vol.CreatedAt)) + // comparing CreatedAt field time for the new volume to now. Truncate to 1 minute precision to avoid false positive + createdAt, err := time.Parse(time.RFC3339, strings.TrimSpace(inspected.CreatedAt)) assert.NilError(t, err) - testCreatedAt = testCreatedAt.Truncate(time.Minute) - assert.Check(t, is.Equal(testCreatedAt.Equal(now), true), "Time Volume is CreatedAt not equal to current time") + assert.Check(t, createdAt.Truncate(time.Minute).Equal(now.Truncate(time.Minute)), "CreatedAt (%s) not equal to creation time (%s)", createdAt, now) } func getPrefixAndSlashFromDaemonPlatform() (prefix, slash string) {