mirror of
https://github.com/grafana/grafana.git
synced 2025-02-03 12:11:09 -06:00
migrate away from goconvey (#36203)
This commit is contained in:
parent
09fed51be5
commit
54acb18c5f
@ -5,22 +5,23 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestUploadToAzureBlob(t *testing.T) {
|
||||
SkipConvey("[Integration test] for external_image_store.azure_blob", t, func() {
|
||||
t.Run("[Integration test] for external_image_store.azure_blob", func(t *testing.T) {
|
||||
t.Skip("Skipping testing for external_image_store.azure_blob")
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, _ := NewImageUploader()
|
||||
|
||||
path, err := uploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png")
|
||||
|
||||
So(err, ShouldBeNil)
|
||||
So(path, ShouldNotEqual, "")
|
||||
require.NoError(t, err)
|
||||
require.NotEqual(t, "", path)
|
||||
})
|
||||
}
|
||||
|
@ -5,183 +5,182 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/components/imguploader/gcs"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestImageUploaderFactory(t *testing.T) {
|
||||
Convey("Can create image uploader for ", t, func() {
|
||||
Convey("S3ImageUploader config", func() {
|
||||
t.Run("Can create image uploader for ", func(t *testing.T) {
|
||||
t.Run("S3ImageUploader config", func(t *testing.T) {
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
setting.ImageUploadProvider = "s3"
|
||||
|
||||
Convey("with bucket url https://foo.bar.baz.s3-us-east-2.amazonaws.com", func() {
|
||||
t.Run("with bucket url https://foo.bar.baz.s3-us-east-2.amazonaws.com", func(t *testing.T) {
|
||||
s3sec, err := setting.Raw.GetSection("external_image_storage.s3")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("bucket_url", "https://foo.bar.baz.s3-us-east-2.amazonaws.com")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("access_key", "access_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("secret_key", "secret_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
original, ok := uploader.(*S3Uploader)
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original.region, ShouldEqual, "us-east-2")
|
||||
So(original.bucket, ShouldEqual, "foo.bar.baz")
|
||||
So(original.accessKey, ShouldEqual, "access_key")
|
||||
So(original.secretKey, ShouldEqual, "secret_key")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-east-2", original.region)
|
||||
require.Equal(t, "foo.bar.baz", original.bucket)
|
||||
require.Equal(t, "access_key", original.accessKey)
|
||||
require.Equal(t, "secret_key", original.secretKey)
|
||||
})
|
||||
|
||||
Convey("with bucket url https://s3.amazonaws.com/mybucket", func() {
|
||||
t.Run("with bucket url https://s3.amazonaws.com/mybucket", func(t *testing.T) {
|
||||
s3sec, err := setting.Raw.GetSection("external_image_storage.s3")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("bucket_url", "https://s3.amazonaws.com/my.bucket.com")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("access_key", "access_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("secret_key", "secret_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
original, ok := uploader.(*S3Uploader)
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original.region, ShouldEqual, "us-east-1")
|
||||
So(original.bucket, ShouldEqual, "my.bucket.com")
|
||||
So(original.accessKey, ShouldEqual, "access_key")
|
||||
So(original.secretKey, ShouldEqual, "secret_key")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-east-1", original.region)
|
||||
require.Equal(t, "my.bucket.com", original.bucket)
|
||||
require.Equal(t, "access_key", original.accessKey)
|
||||
require.Equal(t, "secret_key", original.secretKey)
|
||||
})
|
||||
|
||||
Convey("with bucket url https://s3-us-west-2.amazonaws.com/mybucket", func() {
|
||||
t.Run("with bucket url https://s3-us-west-2.amazonaws.com/mybucket", func(t *testing.T) {
|
||||
s3sec, err := setting.Raw.GetSection("external_image_storage.s3")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("bucket_url", "https://s3-us-west-2.amazonaws.com/my.bucket.com")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("access_key", "access_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = s3sec.NewKey("secret_key", "secret_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
original, ok := uploader.(*S3Uploader)
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original.region, ShouldEqual, "us-west-2")
|
||||
So(original.bucket, ShouldEqual, "my.bucket.com")
|
||||
So(original.accessKey, ShouldEqual, "access_key")
|
||||
So(original.secretKey, ShouldEqual, "secret_key")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-west-2", original.region)
|
||||
require.Equal(t, "my.bucket.com", original.bucket)
|
||||
require.Equal(t, "access_key", original.accessKey)
|
||||
require.Equal(t, "secret_key", original.secretKey)
|
||||
})
|
||||
})
|
||||
|
||||
Convey("Webdav uploader", func() {
|
||||
t.Run("Webdav uploader", func(t *testing.T) {
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
setting.ImageUploadProvider = "webdav"
|
||||
|
||||
webdavSec, err := cfg.Raw.GetSection("external_image_storage.webdav")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = webdavSec.NewKey("url", "webdavUrl")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = webdavSec.NewKey("username", "username")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = webdavSec.NewKey("password", "password")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
original, ok := uploader.(*WebdavUploader)
|
||||
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original.url, ShouldEqual, "webdavUrl")
|
||||
So(original.username, ShouldEqual, "username")
|
||||
So(original.password, ShouldEqual, "password")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "webdavUrl", original.url)
|
||||
require.Equal(t, "username", original.username)
|
||||
require.Equal(t, "password", original.password)
|
||||
})
|
||||
|
||||
Convey("GCS uploader", func() {
|
||||
t.Run("GCS uploader", func(t *testing.T) {
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
setting.ImageUploadProvider = "gcs"
|
||||
|
||||
gcpSec, err := cfg.Raw.GetSection("external_image_storage.gcs")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = gcpSec.NewKey("key_file", "/etc/secrets/project-79a52befa3f6.json")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = gcpSec.NewKey("bucket", "project-grafana-east")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
original, ok := uploader.(*gcs.Uploader)
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original.KeyFile, ShouldEqual, "/etc/secrets/project-79a52befa3f6.json")
|
||||
So(original.Bucket, ShouldEqual, "project-grafana-east")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "/etc/secrets/project-79a52befa3f6.json", original.KeyFile)
|
||||
require.Equal(t, "project-grafana-east", original.Bucket)
|
||||
})
|
||||
|
||||
Convey("AzureBlobUploader config", func() {
|
||||
t.Run("AzureBlobUploader config", func(t *testing.T) {
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
setting.ImageUploadProvider = "azure_blob"
|
||||
|
||||
Convey("with container name", func() {
|
||||
t.Run("with container name", func(t *testing.T) {
|
||||
azureBlobSec, err := cfg.Raw.GetSection("external_image_storage.azure_blob")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = azureBlobSec.NewKey("account_name", "account_name")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = azureBlobSec.NewKey("account_key", "account_key")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
_, err = azureBlobSec.NewKey("container_name", "container_name")
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
original, ok := uploader.(*AzureBlobUploader)
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original.account_name, ShouldEqual, "account_name")
|
||||
So(original.account_key, ShouldEqual, "account_key")
|
||||
So(original.container_name, ShouldEqual, "container_name")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "account_name", original.account_name)
|
||||
require.Equal(t, "account_key", original.account_key)
|
||||
require.Equal(t, "container_name", original.container_name)
|
||||
})
|
||||
})
|
||||
|
||||
Convey("Local uploader", func() {
|
||||
t.Run("Local uploader", func(t *testing.T) {
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
setting.ImageUploadProvider = "local"
|
||||
|
||||
uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
original, ok := uploader.(*LocalUploader)
|
||||
So(ok, ShouldBeTrue)
|
||||
So(original, ShouldNotBeNil)
|
||||
require.True(t, ok)
|
||||
require.NotNil(t, original)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -4,15 +4,15 @@ import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestUploadToLocal(t *testing.T) {
|
||||
Convey("[Integration test] for external_image_store.local", t, func() {
|
||||
t.Run("[Integration test] for external_image_store.local", func(t *testing.T) {
|
||||
localUploader, _ := NewLocalImageUploader()
|
||||
path, err := localUploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png")
|
||||
|
||||
So(err, ShouldBeNil)
|
||||
So(path, ShouldContainSubstring, "/public/img/attachments")
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, path, "/public/img/attachments")
|
||||
})
|
||||
}
|
||||
|
@ -5,22 +5,23 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestUploadToS3(t *testing.T) {
|
||||
SkipConvey("[Integration test] for external_image_store.s3", t, func() {
|
||||
t.Run("[Integration test] for external_image_store.s3", func(t *testing.T) {
|
||||
t.Skip("Skip test [Integration test] for external_image_store.s3")
|
||||
cfg := setting.NewCfg()
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
s3Uploader, err := NewImageUploader()
|
||||
So(err, ShouldBeNil)
|
||||
require.NoError(t, err)
|
||||
|
||||
path, err := s3Uploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png")
|
||||
So(err, ShouldBeNil)
|
||||
So(path, ShouldNotEqual, "")
|
||||
require.NoError(t, err)
|
||||
require.NotEqual(t, "", path)
|
||||
})
|
||||
}
|
||||
|
@ -3,38 +3,43 @@ package imguploader
|
||||
import (
|
||||
"context"
|
||||
"net/url"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestUploadToWebdav(t *testing.T) {
|
||||
// Can be tested with this docker container: https://hub.docker.com/r/morrisjobke/webdav/
|
||||
SkipConvey("[Integration test] for external_image_store.webdav", t, func() {
|
||||
t.Run("[Integration test] for external_image_store.webdav", func(t *testing.T) {
|
||||
t.Skip("Skip test [Integration test] for external_image_store.webdav")
|
||||
webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "")
|
||||
path, err := webdavUploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png")
|
||||
|
||||
So(err, ShouldBeNil)
|
||||
So(path, ShouldStartWith, "http://localhost:8888/webdav/")
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.HasPrefix(path, "http://localhost:8888/webdav/"))
|
||||
})
|
||||
|
||||
SkipConvey("[Integration test] for external_image_store.webdav with public url", t, func() {
|
||||
t.Run("[Integration test] for external_image_store.webdav with public url", func(t *testing.T) {
|
||||
t.Skip("Skip test [Integration test] for external_image_store.webdav with public url")
|
||||
webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "http://publicurl:8888/webdav")
|
||||
path, err := webdavUploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png")
|
||||
|
||||
So(err, ShouldBeNil)
|
||||
So(path, ShouldStartWith, "http://publicurl:8888/webdav/")
|
||||
require.NoError(t, err)
|
||||
require.True(t, strings.HasPrefix(path, "http://publicurl:8888/webdav/"))
|
||||
|
||||
require.True(t, strings.HasPrefix(path, "http://publicurl:8888/webdav/"))
|
||||
})
|
||||
}
|
||||
|
||||
func TestPublicURL(t *testing.T) {
|
||||
Convey("Given a public URL with parameters, and no template", t, func() {
|
||||
t.Run("Given a public URL with parameters, and no template", func(t *testing.T) {
|
||||
webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "http://cloudycloud.me/s/DOIFDOMV/download?files=")
|
||||
parsed, _ := url.Parse(webdavUploader.PublicURL("fileyfile.png"))
|
||||
So(parsed.Path, ShouldEndWith, "fileyfile.png")
|
||||
require.True(t, strings.HasSuffix(parsed.Path, "fileyfile.png"))
|
||||
})
|
||||
Convey("Given a public URL with parameters, and a template", t, func() {
|
||||
t.Run("Given a public URL with parameters, and a template", func(t *testing.T) {
|
||||
webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "http://cloudycloud.me/s/DOIFDOMV/download?files=${file}")
|
||||
So(webdavUploader.PublicURL("fileyfile.png"), ShouldEndWith, "fileyfile.png")
|
||||
require.True(t, strings.HasSuffix(webdavUploader.PublicURL("fileyfile.png"), "fileyfile.png"))
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user