From 8cd3251b57ec3fc3b389c8a2f3db673670755cb8 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Wed, 13 Oct 2021 15:59:43 +0100 Subject: [PATCH] fstests: Relax MimeType support checking #5587 Before this change we checked that features.ReadMimeTime was set if and only if the Object.MimeType method was implemented. However this test is overly general - we don't care if Objects advertise MimeType when features.ReadMimeTime is set provided that they always return an empty string (which is what a wrapping backend might do). This patch implements that logic. --- fstest/fstests/fstests.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fstest/fstests/fstests.go b/fstest/fstests/fstests.go index 31648e81e..553d99eb0 100644 --- a/fstest/fstests/fstests.go +++ b/fstest/fstests/fstests.go @@ -1333,12 +1333,14 @@ func Run(t *testing.T, opt *Opt) { features := f.Features() obj := findObject(ctx, t, f, file1.Path) do, ok := obj.(fs.MimeTyper) - require.Equal(t, features.ReadMimeType, ok, "mismatch between Object.MimeType and Features.ReadMimeType") if !ok { + require.False(t, features.ReadMimeType, "Features.ReadMimeType is set but Object.MimeType method not found") t.Skip("MimeType method not supported") } mimeType := do.MimeType(ctx) - if features.WriteMimeType { + if !features.ReadMimeType { + require.Equal(t, "", mimeType, "Features.ReadMimeType is not set but Object.MimeType returned a non-empty MimeType") + } else if features.WriteMimeType { assert.Equal(t, file1MimeType, mimeType, "can read and write mime types but failed") } else { if strings.ContainsRune(mimeType, ';') {