Plugins: Update plugin fakes package name (#112503)

update plugin fakes package name
This commit is contained in:
Will Browne
2025-10-16 15:14:05 +01:00
committed by GitHub
parent 1fb7953a95
commit 2223338e34
24 changed files with 219 additions and 219 deletions
+3 -3
View File
@@ -21,7 +21,7 @@ import (
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/caching"
datasources "github.com/grafana/grafana/pkg/services/datasources/fakes"
@@ -166,7 +166,7 @@ func TestIntegrationCallResource(t *testing.T) {
}
})
pluginRegistry := fakes.NewFakePluginRegistry()
pluginRegistry := pluginfakes.NewFakePluginRegistry()
require.NoError(t, pluginRegistry.Add(context.Background(), &plugins.Plugin{
JSONData: plugins.JSONData{
ID: "grafana-testdata-datasource",
@@ -174,7 +174,7 @@ func TestIntegrationCallResource(t *testing.T) {
},
}))
middlewares := pluginsintegration.CreateMiddlewares(cfg, &oauthtokentest.Service{}, tracing.InitializeTracerForTest(), &caching.OSSCachingService{}, featuremgmt.WithFeatures(), prometheus.DefaultRegisterer, pluginRegistry)
pc, err := backend.HandlerFromMiddlewares(&fakes.FakePluginClient{
pc, err := backend.HandlerFromMiddlewares(&pluginfakes.FakePluginClient{
CallResourceHandlerFunc: backend.CallResourceHandlerFunc(func(ctx context.Context,
req *backend.CallResourceRequest, sender backend.CallResourceResponseSender) error {
return errors.New("something went wrong")
+1 -1
View File
@@ -30,7 +30,7 @@ import (
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/plugins"
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
"github.com/grafana/grafana/pkg/services/auth"
+21 -21
View File
@@ -25,8 +25,8 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/auth"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/filestore"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/registry"
"github.com/grafana/grafana/pkg/plugins/manager/signature"
"github.com/grafana/grafana/pkg/plugins/manager/signature/statickey"
@@ -106,7 +106,7 @@ func Test_PluginsInstallAndUninstall(t *testing.T) {
hs.accesscontrolService = &actest.FakeService{}
hs.pluginInstaller = NewFakePluginInstaller()
hs.pluginFileStore = &fakes.FakePluginFileStore{}
hs.pluginFileStore = &pluginfakes.FakePluginFileStore{}
hs.pluginStore = pluginstore.NewFakePluginStore(pluginstore.Plugin{
JSONData: plugins.JSONData{
ID: pluginID,
@@ -160,7 +160,7 @@ func Test_GetPluginAssetCDNRedirect(t *testing.T) {
nonCdnPlugin := &plugins.Plugin{
JSONData: plugins.JSONData{ID: nonCDNPluginID, Info: plugins.Info{Version: "2.0.0"}},
}
registry := &fakes.FakePluginRegistry{
registry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
cdnPluginID: cdnPlugin,
nonCDNPluginID: nonCdnPlugin,
@@ -264,7 +264,7 @@ func Test_GetPluginAssets(t *testing.T) {
t.Run("Given a request for an existing plugin file", func(t *testing.T) {
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassExternal, plugins.NewLocalFS(filepath.Dir(requestedFile)))
pluginRegistry := &fakes.FakePluginRegistry{
pluginRegistry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p.ID: p,
},
@@ -282,7 +282,7 @@ func Test_GetPluginAssets(t *testing.T) {
t.Run("Given a request for a relative path", func(t *testing.T) {
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassExternal, plugins.NewFakeFS())
pluginRegistry := &fakes.FakePluginRegistry{
pluginRegistry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p.ID: p,
},
@@ -299,7 +299,7 @@ func Test_GetPluginAssets(t *testing.T) {
t.Run("Given a request for an existing plugin file that is not listed as a signature covered file", func(t *testing.T) {
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassCore, plugins.NewLocalFS(filepath.Dir(requestedFile)))
pluginRegistry := &fakes.FakePluginRegistry{
pluginRegistry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p.ID: p,
},
@@ -317,7 +317,7 @@ func Test_GetPluginAssets(t *testing.T) {
t.Run("Given a request for an non-existing plugin file", func(t *testing.T) {
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassExternal, plugins.NewFakeFS())
service := &fakes.FakePluginRegistry{
service := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p.ID: p,
},
@@ -341,7 +341,7 @@ func Test_GetPluginAssets(t *testing.T) {
requestedFile := "nonExistent"
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile)
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*",
setting.NewCfg(), fakes.NewFakePluginRegistry(), func(sc *scenarioContext) {
setting.NewCfg(), pluginfakes.NewFakePluginRegistry(), func(sc *scenarioContext) {
callGetPluginAsset(sc)
var respJson map[string]any
@@ -427,7 +427,7 @@ func TestMakePluginResourceRequestContentTypeEmpty(t *testing.T) {
func TestPluginMarkdown(t *testing.T) {
t.Run("Plugin not installed returns error", func(t *testing.T) {
pluginFileStore := &fakes.FakePluginFileStore{
pluginFileStore := &pluginfakes.FakePluginFileStore{
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
return nil, plugins.ErrPluginNotInstalled
},
@@ -442,7 +442,7 @@ func TestPluginMarkdown(t *testing.T) {
t.Run("File fetch will be retried using different casing if error occurs", func(t *testing.T) {
var requestedFiles []string
pluginFileStore := &fakes.FakePluginFileStore{
pluginFileStore := &pluginfakes.FakePluginFileStore{
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
requestedFiles = append(requestedFiles, filename)
return nil, errors.New("some error")
@@ -479,7 +479,7 @@ func TestPluginMarkdown(t *testing.T) {
for _, tc := range tcs {
data := []byte{123}
var requestedFiles []string
pluginFileStore := &fakes.FakePluginFileStore{
pluginFileStore := &pluginfakes.FakePluginFileStore{
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
requestedFiles = append(requestedFiles, filename)
return &plugins.File{Content: data}, nil
@@ -496,7 +496,7 @@ func TestPluginMarkdown(t *testing.T) {
})
t.Run("Non markdown file request returns an error", func(t *testing.T) {
hs := HTTPServer{pluginFileStore: &fakes.FakePluginFileStore{}}
hs := HTTPServer{pluginFileStore: &pluginfakes.FakePluginFileStore{}}
md, err := hs.pluginMarkdown(context.Background(), "", "", "test.json")
require.ErrorIs(t, err, ErrUnexpectedFileExtension)
@@ -506,7 +506,7 @@ func TestPluginMarkdown(t *testing.T) {
t.Run("Happy path", func(t *testing.T) {
data := []byte{1, 2, 3}
pluginFileStore := &fakes.FakePluginFileStore{
pluginFileStore := &pluginfakes.FakePluginFileStore{
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
return &plugins.File{Content: data}, nil
},
@@ -527,7 +527,7 @@ func callGetPluginAsset(sc *scenarioContext) {
func pluginAssetScenario(t *testing.T, desc string, url string, urlPattern string,
cfg *setting.Cfg, pluginRegistry registry.Service, fn scenarioFunc) {
t.Run(fmt.Sprintf("%s %s", desc, url), func(t *testing.T) {
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
hs := HTTPServer{
@@ -606,7 +606,7 @@ func Test_PluginsList_AccessControl(t *testing.T) {
Description: "Data source for MySQL databases",
}}, plugins.ClassCore, plugins.NewFakeFS())
pluginRegistry := &fakes.FakePluginRegistry{
pluginRegistry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
p2.ID: p2,
@@ -642,7 +642,7 @@ func Test_PluginsList_AccessControl(t *testing.T) {
for _, tc := range tcs {
t.Run(tc.desc, func(t *testing.T) {
server := SetupAPITestServer(t, func(hs *HTTPServer) {
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
hs.Cfg = setting.NewCfg()
@@ -789,7 +789,7 @@ func Test_PluginsSettings(t *testing.T) {
Info: plugins.Info{
Version: "1.0.0",
}}, plugins.ClassExternal, plugins.NewFakeFS())
pluginRegistry := &fakes.FakePluginRegistry{
pluginRegistry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
},
@@ -832,7 +832,7 @@ func Test_PluginsSettings(t *testing.T) {
for _, tc := range tcs {
t.Run(tc.desc, func(t *testing.T) {
server := SetupAPITestServer(t, func(hs *HTTPServer) {
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
hs.Cfg = setting.NewCfg()
@@ -854,7 +854,7 @@ func Test_PluginsSettings(t *testing.T) {
hs.pluginsUpdateChecker, err = updatemanager.ProvidePluginsService(
hs.Cfg,
hs.pluginStore,
&fakes.FakePluginInstaller{},
&pluginfakes.FakePluginInstaller{},
tracing.InitializeTracerForTest(),
kvstore.NewFakeFeatureToggles(t, true),
pluginchecker.ProvideService(hs.managedPluginsService, provisionedplugins.NewNoop(), &pluginchecker.FakePluginPreinstall{}),
@@ -890,7 +890,7 @@ func Test_UpdatePluginSetting(t *testing.T) {
AutoEnabled: true,
}, plugins.ClassExternal, plugins.NewFakeFS(),
)
pluginRegistry := &fakes.FakePluginRegistry{
pluginRegistry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
},
@@ -902,7 +902,7 @@ func Test_UpdatePluginSetting(t *testing.T) {
t.Run("should return an error when trying to disable an auto-enabled plugin", func(t *testing.T) {
server := SetupAPITestServer(t, func(hs *HTTPServer) {
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
hs.Cfg = setting.NewCfg()
@@ -8,14 +8,14 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/stretchr/testify/require"
)
func TestCorePlugin(t *testing.T) {
t.Run("New core plugin with empty opts should return expected values", func(t *testing.T) {
factory := coreplugin.New(backend.ServeOpts{})
p, err := factory("plugin", log.New("test"), fakes.InitializeNoopTracerForTest(), nil)
p, err := factory("plugin", log.New("test"), pluginfakes.InitializeNoopTracerForTest(), nil)
require.NoError(t, err)
require.NotNil(t, p)
require.NoError(t, p.Start(context.Background()))
@@ -48,7 +48,7 @@ func TestCorePlugin(t *testing.T) {
return nil
}),
})
p, err := factory("plugin", log.New("test"), fakes.InitializeNoopTracerForTest(), nil)
p, err := factory("plugin", log.New("test"), pluginfakes.InitializeNoopTracerForTest(), nil)
require.NoError(t, err)
require.NotNil(t, p)
require.NoError(t, p.Start(context.Background()))
+6 -6
View File
@@ -10,14 +10,14 @@ import (
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/util/testutil"
"github.com/stretchr/testify/require"
)
func TestQueryData(t *testing.T) {
t.Run("Empty registry should return not registered error", func(t *testing.T) {
registry := fakes.NewFakePluginRegistry()
registry := pluginfakes.NewFakePluginRegistry()
client := ProvideService(registry)
_, err := client.QueryData(context.Background(), &backend.QueryDataRequest{})
require.Error(t, err)
@@ -64,7 +64,7 @@ func TestQueryData(t *testing.T) {
for _, tc := range tcs {
t.Run(fmt.Sprintf("Plugin client error %q should return expected error", tc.err), func(t *testing.T) {
registry := fakes.NewFakePluginRegistry()
registry := pluginfakes.NewFakePluginRegistry()
p := &plugins.Plugin{
JSONData: plugins.JSONData{
ID: "grafana",
@@ -97,7 +97,7 @@ func TestQueryData(t *testing.T) {
func TestCheckHealth(t *testing.T) {
t.Run("empty plugin registry should return plugin not registered error", func(t *testing.T) {
registry := fakes.NewFakePluginRegistry()
registry := pluginfakes.NewFakePluginRegistry()
client := ProvideService(registry)
_, err := client.CheckHealth(context.Background(), &backend.CheckHealthRequest{})
require.Error(t, err)
@@ -130,7 +130,7 @@ func TestCheckHealth(t *testing.T) {
for _, tc := range tcs {
t.Run(fmt.Sprintf("Plugin client error %q should return expected error", tc.err), func(t *testing.T) {
registry := fakes.NewFakePluginRegistry()
registry := pluginfakes.NewFakePluginRegistry()
p := &plugins.Plugin{
JSONData: plugins.JSONData{
ID: "grafana",
@@ -160,7 +160,7 @@ func TestCheckHealth(t *testing.T) {
func TestIntegrationCallResource(t *testing.T) {
testutil.SkipIntegrationTestInShortMode(t)
registry := fakes.NewFakePluginRegistry()
registry := pluginfakes.NewFakePluginRegistry()
p := &plugins.Plugin{
JSONData: plugins.JSONData{
ID: "pid",
+37 -37
View File
@@ -15,7 +15,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/sources"
"github.com/grafana/grafana/pkg/plugins/repo"
"github.com/grafana/grafana/pkg/plugins/storage"
@@ -40,7 +40,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
FileHeader: zip.FileHeader{Name: zipNameV1},
}}}}
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
return []*plugins.Plugin{pluginV1}, nil
},
@@ -49,7 +49,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
pluginRepo := &fakes.FakePluginRepo{
pluginRepo := &pluginfakes.FakePluginRepo{
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
require.Equal(t, pluginID, id)
require.Equal(t, v1, version)
@@ -59,7 +59,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
fs := &fakes.FakePluginStorage{
fs := &pluginfakes.FakePluginStorage{
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
require.Equal(t, pluginID, id)
require.Equal(t, mockZipV1, z)
@@ -71,12 +71,12 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := inst.Add(context.Background(), pluginID, v1, testCompatOpts())
require.NoError(t, err)
t.Run("Won't add if already exists", func(t *testing.T) {
inst.pluginRegistry = &fakes.FakePluginRegistry{
inst.pluginRegistry = &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
pluginID: pluginV1,
},
@@ -90,7 +90,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
t.Run("Add from URL", func(t *testing.T) {
url := "https://grafanaplugins.com"
pluginRepo := &fakes.FakePluginRepo{
pluginRepo := &pluginfakes.FakePluginRepo{
GetPluginArchiveByURLFunc: func(_ context.Context, archiveURL string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
require.Equal(t, pluginID, pluginID)
require.Equal(t, url, archiveURL)
@@ -99,7 +99,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
}, nil
},
}
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := inst.Add(context.Background(), pluginID, v1, plugins.NewAddOpts(v1, runtime.GOOS, runtime.GOARCH, url))
require.NoError(t, err)
})
@@ -183,14 +183,14 @@ func TestPluginManager_Add_Remove(t *testing.T) {
})
t.Run("Removing an existing plugin", func(t *testing.T) {
inst.pluginRegistry = &fakes.FakePluginRegistry{
inst.pluginRegistry = &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
pluginID: pluginV1,
},
}
var unloadedPlugins []string
inst.pluginLoader = &fakes.FakeLoader{
inst.pluginLoader = &pluginfakes.FakeLoader{
UnloadFunc: func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
unloadedPlugins = append(unloadedPlugins, p.ID)
return p, nil
@@ -203,7 +203,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
require.Equal(t, []string{pluginID}, unloadedPlugins)
t.Run("Won't remove if not exists", func(t *testing.T) {
inst.pluginRegistry = fakes.NewFakePluginRegistry()
inst.pluginRegistry = pluginfakes.NewFakePluginRegistry()
err = inst.Remove(context.Background(), pluginID, v2)
require.Equal(t, plugins.ErrPluginNotInstalled, err)
@@ -216,13 +216,13 @@ func TestPluginManager_Add_Remove(t *testing.T) {
plugin.Info.Version = "1.0.0"
})
reg := &fakes.FakePluginRegistry{
reg := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
testPluginID: p,
},
}
pm := New(&config.PluginManagementCfg{}, reg, &fakes.FakeLoader{}, &fakes.FakePluginRepo{}, &fakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
pm := New(&config.PluginManagementCfg{}, reg, &pluginfakes.FakeLoader{}, &pluginfakes.FakePluginRepo{}, &pluginfakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := pm.Add(context.Background(), p.ID, "3.2.0", testCompatOpts())
require.ErrorIs(t, err, plugins.ErrInstallCorePlugin)
@@ -243,7 +243,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
)
var loadedPaths []string
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
// Check if this is a LocalSource and get its paths
if localSrc, ok := src.(*sources.LocalSource); ok {
@@ -253,7 +253,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
pluginRepo := &fakes.FakePluginRepo{
pluginRepo := &pluginfakes.FakePluginRepo{
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
return &repo.PluginArchive{File: &zip.ReadCloser{Reader: zip.Reader{File: []*zip.File{{
FileHeader: zip.FileHeader{Name: fmt.Sprintf("%s.zip", id)},
@@ -261,7 +261,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
fs := &fakes.FakePluginStorage{
fs := &pluginfakes.FakePluginStorage{
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
switch id {
case p1:
@@ -287,7 +287,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := inst.Add(context.Background(), p3, "", testCompatOpts())
require.NoError(t, err)
require.Equal(t, []string{p1Zip, p2Zip, p3Zip}, loadedPaths)
@@ -300,7 +300,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
)
var loadedPaths []string
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
// Check if this is a LocalSource and get its paths
if localSrc, ok := src.(*sources.LocalSource); ok {
@@ -310,7 +310,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
pluginRepo := &fakes.FakePluginRepo{
pluginRepo := &pluginfakes.FakePluginRepo{
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
return &repo.PluginArchive{File: &zip.ReadCloser{Reader: zip.Reader{File: []*zip.File{{
FileHeader: zip.FileHeader{Name: fmt.Sprintf("%s.zip", id)},
@@ -318,7 +318,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
fs := &fakes.FakePluginStorage{
fs := &pluginfakes.FakePluginStorage{
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
switch id {
case p1:
@@ -339,7 +339,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := inst.Add(context.Background(), p1, "", testCompatOpts())
require.NoError(t, err)
require.Equal(t, []string{p2Zip, p1Zip}, loadedPaths)
@@ -347,14 +347,14 @@ func TestPluginManager_Add_Remove(t *testing.T) {
t.Run("Plugin can successfully install even if dependency plugin is already installed", func(t *testing.T) {
const pluginDependencyID = "test-plugin-dependency"
reg := &fakes.FakePluginRegistry{
reg := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
pluginDependencyID: createPlugin(t, pluginDependencyID, plugins.ClassExternal, false, false),
},
}
var loadedPaths []string
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
// Check if this is a LocalSource and get its paths
if localSrc, ok := src.(*sources.LocalSource); ok {
@@ -364,7 +364,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
pluginRepo := &fakes.FakePluginRepo{
pluginRepo := &pluginfakes.FakePluginRepo{
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
return &repo.PluginArchive{File: &zip.ReadCloser{Reader: zip.Reader{File: []*zip.File{{
FileHeader: zip.FileHeader{Name: fmt.Sprintf("%s.zip", id)},
@@ -372,7 +372,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
fs := &fakes.FakePluginStorage{
fs := &pluginfakes.FakePluginStorage{
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
switch id {
case testPluginID:
@@ -387,7 +387,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
inst := New(&config.PluginManagementCfg{}, reg, loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, reg, loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := inst.Add(context.Background(), testPluginID, "", testCompatOpts())
require.NoError(t, err)
require.Equal(t, []string{"test-plugin.zip"}, loadedPaths)
@@ -401,7 +401,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
)
var loadedPaths []string
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
// Check if this is a LocalSource and get its paths
if localSrc, ok := src.(*sources.LocalSource); ok {
@@ -415,7 +415,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
urlMethodCalled := false
catalogMethodCalled := false
pluginRepo := &fakes.FakePluginRepo{
pluginRepo := &pluginfakes.FakePluginRepo{
GetPluginArchiveByURLFunc: func(_ context.Context, url string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
urlMethodCalled = true
require.Equal(t, parentURL, url, "URL method should only be called for parent plugin")
@@ -432,7 +432,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
fs := &fakes.FakePluginStorage{
fs := &pluginfakes.FakePluginStorage{
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
switch id {
case parentPluginID:
@@ -452,7 +452,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
},
}
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err := inst.Add(context.Background(), parentPluginID, "", plugins.NewAddOpts("10.0.0", runtime.GOOS, runtime.GOARCH, parentURL))
require.NoError(t, err)
require.Equal(t, []string{"dependency-plugin.zip", "parent-plugin.zip"}, loadedPaths)
@@ -474,7 +474,7 @@ func createPlugin(t *testing.T, pluginID string, class plugins.Class, managed, b
}
p.SetLogger(log.NewTestLogger())
if p.Backend {
p.RegisterClient(&fakes.FakePluginClient{
p.RegisterClient(&pluginfakes.FakePluginClient{
ID: pluginID,
Managed: managed,
Log: p.Logger(),
@@ -517,13 +517,13 @@ func TestPluginInstaller_Removal(t *testing.T) {
plugin.FS = localFS
})
registry := &fakes.FakePluginRegistry{
registry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
"localfs-plugin": pluginV1,
},
}
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
UnloadFunc: func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
return p, nil
},
@@ -532,7 +532,7 @@ func TestPluginInstaller_Removal(t *testing.T) {
_, err = os.Stat(pluginDir)
require.NoError(t, err)
inst := New(&config.PluginManagementCfg{}, registry, loader, &fakes.FakePluginRepo{}, &fakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, registry, loader, &pluginfakes.FakePluginRepo{}, &pluginfakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err = inst.Remove(context.Background(), "localfs-plugin", "1.0.0")
require.NoError(t, err)
@@ -565,13 +565,13 @@ func TestPluginInstaller_Removal(t *testing.T) {
plugin.FS = staticFS
})
registry := &fakes.FakePluginRegistry{
registry := &pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
"staticfs-plugin": pluginV1,
},
}
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
UnloadFunc: func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
return p, nil
},
@@ -580,7 +580,7 @@ func TestPluginInstaller_Removal(t *testing.T) {
_, err = os.Stat(pluginDir)
require.NoError(t, err)
inst := New(&config.PluginManagementCfg{}, registry, loader, &fakes.FakePluginRepo{}, &fakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
inst := New(&config.PluginManagementCfg{}, registry, loader, &pluginfakes.FakePluginRepo{}, &pluginfakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
err = inst.Remove(context.Background(), "staticfs-plugin", "1.0.0")
require.NoError(t, err)
+24 -24
View File
@@ -13,12 +13,12 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/discovery"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/initialization"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/termination"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/validation"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/sources"
"github.com/grafana/grafana/pkg/services/org"
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginerrs"
@@ -452,7 +452,7 @@ func TestLoader_Load(t *testing.T) {
}
t.Run("Simple", func(t *testing.T) {
src := &fakes.FakePluginSource{
src := &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -472,13 +472,13 @@ func TestLoader_Load(t *testing.T) {
var steps []string
l := New(
zeroCfg,
&fakes.FakeDiscoverer{
&pluginfakes.FakeDiscoverer{
DiscoverFunc: func(ctx context.Context, s plugins.PluginSource) ([]*plugins.FoundBundle, error) {
require.Equal(t, src, s)
steps = append(steps, "discover")
return []*plugins.FoundBundle{{Primary: plugins.FoundPlugin{JSONData: pluginJSON}}}, nil
},
}, &fakes.FakeBootstrapper{
}, &pluginfakes.FakeBootstrapper{
BootstrapFunc: func(ctx context.Context, s plugins.PluginSource, b *plugins.FoundBundle) ([]*plugins.Plugin, error) {
require.Equal(t, b.Primary.JSONData, pluginJSON)
require.Equal(t, src, s)
@@ -486,19 +486,19 @@ func TestLoader_Load(t *testing.T) {
steps = append(steps, "bootstrap")
return []*plugins.Plugin{plugin}, nil
},
}, &fakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
}, &pluginfakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
require.Equal(t, plugin, ps)
steps = append(steps, "validate")
return nil
}},
&fakes.FakeInitializer{
&pluginfakes.FakeInitializer{
IntializeFunc: func(ctx context.Context, ps *plugins.Plugin) (*plugins.Plugin, error) {
require.Equal(t, ps.JSONData, pluginJSON)
steps = append(steps, "initialize")
return ps, nil
},
}, &fakes.FakeTerminator{}, et)
}, &pluginfakes.FakeTerminator{}, et)
got, err := l.Load(context.Background(), src)
require.NoError(t, err)
@@ -507,7 +507,7 @@ func TestLoader_Load(t *testing.T) {
})
t.Run("With error", func(t *testing.T) {
src := &fakes.FakePluginSource{
src := &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -527,13 +527,13 @@ func TestLoader_Load(t *testing.T) {
var steps []string
l := New(
zeroCfg,
&fakes.FakeDiscoverer{
&pluginfakes.FakeDiscoverer{
DiscoverFunc: func(ctx context.Context, s plugins.PluginSource) ([]*plugins.FoundBundle, error) {
require.Equal(t, src, s)
steps = append(steps, "discover")
return []*plugins.FoundBundle{{Primary: plugins.FoundPlugin{JSONData: pluginJSON}}}, nil
},
}, &fakes.FakeBootstrapper{
}, &pluginfakes.FakeBootstrapper{
BootstrapFunc: func(ctx context.Context, s plugins.PluginSource, b *plugins.FoundBundle) ([]*plugins.Plugin, error) {
require.Equal(t, b.Primary.JSONData, pluginJSON)
require.Equal(t, src, s)
@@ -541,19 +541,19 @@ func TestLoader_Load(t *testing.T) {
steps = append(steps, "bootstrap")
return []*plugins.Plugin{plugin}, nil
},
}, &fakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
}, &pluginfakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
require.Equal(t, plugin, ps)
steps = append(steps, "validate")
return errors.New("validation error")
}},
&fakes.FakeInitializer{
&pluginfakes.FakeInitializer{
IntializeFunc: func(ctx context.Context, ps *plugins.Plugin) (*plugins.Plugin, error) {
require.Equal(t, ps.JSONData, pluginJSON)
steps = append(steps, "initialize")
return ps, nil
},
}, &fakes.FakeTerminator{}, et)
}, &pluginfakes.FakeTerminator{}, et)
got, err := l.Load(context.Background(), src)
require.NoError(t, err)
@@ -566,7 +566,7 @@ func TestLoader_Load(t *testing.T) {
})
t.Run("Cleans up a previous error", func(t *testing.T) {
src := &fakes.FakePluginSource{
src := &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -587,13 +587,13 @@ func TestLoader_Load(t *testing.T) {
var steps []string
l := New(
zeroCfg,
&fakes.FakeDiscoverer{
&pluginfakes.FakeDiscoverer{
DiscoverFunc: func(ctx context.Context, s plugins.PluginSource) ([]*plugins.FoundBundle, error) {
require.Equal(t, src, s)
steps = append(steps, "discover")
return []*plugins.FoundBundle{{Primary: plugins.FoundPlugin{JSONData: pluginJSON}}}, nil
},
}, &fakes.FakeBootstrapper{
}, &pluginfakes.FakeBootstrapper{
BootstrapFunc: func(ctx context.Context, s plugins.PluginSource, b *plugins.FoundBundle) ([]*plugins.Plugin, error) {
require.Equal(t, b.Primary.JSONData, pluginJSON)
require.Equal(t, src, s)
@@ -601,19 +601,19 @@ func TestLoader_Load(t *testing.T) {
steps = append(steps, "bootstrap")
return []*plugins.Plugin{plugin}, nil
},
}, &fakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
}, &pluginfakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
require.Equal(t, plugin, ps)
steps = append(steps, "validate")
return nil
}},
&fakes.FakeInitializer{
&pluginfakes.FakeInitializer{
IntializeFunc: func(ctx context.Context, ps *plugins.Plugin) (*plugins.Plugin, error) {
require.Equal(t, ps.JSONData, pluginJSON)
steps = append(steps, "initialize")
return ps, nil
},
}, &fakes.FakeTerminator{}, et)
}, &pluginfakes.FakeTerminator{}, et)
got, err := l.Load(context.Background(), src)
require.NoError(t, err)
@@ -644,11 +644,11 @@ func TestLoader_Unload(t *testing.T) {
for _, tc := range tcs {
l := New(
&config.PluginManagementCfg{},
&fakes.FakeDiscoverer{},
&fakes.FakeBootstrapper{},
&fakes.FakeValidator{},
&fakes.FakeInitializer{},
&fakes.FakeTerminator{
&pluginfakes.FakeDiscoverer{},
&pluginfakes.FakeBootstrapper{},
&pluginfakes.FakeValidator{},
&pluginfakes.FakeInitializer{},
&pluginfakes.FakeTerminator{
TerminateFunc: func(ctx context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
require.Equal(t, plugin, p)
return p, tc.expectedErr
@@ -9,7 +9,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
)
func TestSetDefaultNavURL(t *testing.T) {
@@ -98,7 +98,7 @@ func TestTemplateDecorateFunc(t *testing.T) {
func Test_configureAppChildPlugin(t *testing.T) {
t.Run("Child plugin will inherit parent version information when version is empty", func(t *testing.T) {
child := &plugins.Plugin{
FS: fakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app\\datasources\\datasource"),
FS: pluginfakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app\\datasources\\datasource"),
}
parent := &plugins.Plugin{
JSONData: plugins.JSONData{
@@ -107,7 +107,7 @@ func Test_configureAppChildPlugin(t *testing.T) {
Info: plugins.Info{Version: "1.0.0"},
},
Class: plugins.ClassCore,
FS: fakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app"),
FS: pluginfakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app"),
BaseURL: "public/app/plugins/app/testdata-app",
}
@@ -119,7 +119,7 @@ func Test_configureAppChildPlugin(t *testing.T) {
t.Run("Child plugin will not inherit parent version information when version is non-empty", func(t *testing.T) {
child := &plugins.Plugin{
FS: fakes.NewFakePluginFS("/plugins/parent-app/child-panel"),
FS: pluginfakes.NewFakePluginFS("/plugins/parent-app/child-panel"),
JSONData: plugins.JSONData{
Info: plugins.Info{Version: "2.0.2"},
},
@@ -131,7 +131,7 @@ func Test_configureAppChildPlugin(t *testing.T) {
Info: plugins.Info{Version: "2.0.0"},
},
Class: plugins.ClassExternal,
FS: fakes.NewFakePluginFS("/plugins/parent-app"),
FS: pluginfakes.NewFakePluginFS("/plugins/parent-app"),
BaseURL: "plugins/parent-app",
}
@@ -7,7 +7,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/trace"
)
@@ -29,7 +29,7 @@ func TestInitializer_Initialize(t *testing.T) {
Class: plugins.ClassCore,
}
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, fakes.InitializeNoopTracerForTest())
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, pluginfakes.InitializeNoopTracerForTest())
var err error
p, err = stepFunc(context.Background(), p)
@@ -53,7 +53,7 @@ func TestInitializer_Initialize(t *testing.T) {
Class: plugins.ClassExternal,
}
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, fakes.InitializeNoopTracerForTest())
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, pluginfakes.InitializeNoopTracerForTest())
var err error
p, err = stepFunc(context.Background(), p)
@@ -73,7 +73,7 @@ func TestInitializer_Initialize(t *testing.T) {
i := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{
plugin: p,
}, fakes.InitializeNoopTracerForTest())
}, pluginfakes.InitializeNoopTracerForTest())
var err error
p, err = i(context.Background(), p)
@@ -1,4 +1,4 @@
package fakes
package pluginfakes
import (
"archive/zip"
+5 -5
View File
@@ -10,7 +10,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
)
func TestProcessManager_Start(t *testing.T) {
@@ -62,7 +62,7 @@ func TestProcessManager_Start(t *testing.T) {
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
bp := fakes.NewFakeBackendPlugin(tc.managed)
bp := pluginfakes.NewFakeBackendPlugin(tc.managed)
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
plugin.Backend = tc.backend
plugin.Error = tc.Error
@@ -85,7 +85,7 @@ func TestProcessManager_Start(t *testing.T) {
t.Run("Won't stop the plugin if the context is cancelled", func(t *testing.T) {
t.Parallel()
bp := fakes.NewFakeBackendPlugin(true)
bp := pluginfakes.NewFakeBackendPlugin(true)
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
plugin.Backend = true
})
@@ -113,7 +113,7 @@ func TestProcessManager_Stop(t *testing.T) {
pluginID := "test-datasource"
bp := fakes.NewFakeBackendPlugin(true)
bp := pluginfakes.NewFakeBackendPlugin(true)
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
plugin.ID = pluginID
plugin.Backend = true
@@ -134,7 +134,7 @@ func TestProcessManager_ManagedBackendPluginLifecycle(t *testing.T) {
t.Run("When plugin process is killed, the process is restarted", func(t *testing.T) {
t.Parallel()
bp := fakes.NewFakeBackendPlugin(true)
bp := pluginfakes.NewFakeBackendPlugin(true)
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
plugin.Backend = true
})
@@ -15,7 +15,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/signature/statickey"
)
@@ -164,7 +164,7 @@ func TestCalculate(t *testing.T) {
for _, tc := range tcs {
basePath := filepath.Join(parentDir, "testdata/non-pvt-with-root-url/plugin")
s := provideTestServiceWithConfig(&config.PluginManagementCfg{GrafanaAppURL: tc.appURL})
sig, err := s.Calculate(context.Background(), &fakes.FakePluginSource{
sig, err := s.Calculate(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -192,7 +192,7 @@ func TestCalculate(t *testing.T) {
runningWindows = true
s := provideDefaultTestService()
sig, err := s.Calculate(context.Background(), &fakes.FakePluginSource{
sig, err := s.Calculate(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -260,7 +260,7 @@ func TestCalculate(t *testing.T) {
require.NoError(t, err)
pfs, err = newPathSeparatorOverrideFS(string(tc.platform.separator), pfs)
require.NoError(t, err)
sig, err := s.Calculate(context.Background(), &fakes.FakePluginSource{
sig, err := s.Calculate(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -24,7 +24,7 @@ import (
"github.com/grafana/grafana/pkg/infra/httpclient"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/plugins"
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
acmock "github.com/grafana/grafana/pkg/services/accesscontrol/mock"
@@ -16,7 +16,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/instrumentationutils"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
)
const (
@@ -70,7 +70,7 @@ func TestInstrumentationMiddleware(t *testing.T) {
} {
t.Run(string(tc.expEndpoint), func(t *testing.T) {
promRegistry := prometheus.NewRegistry()
pluginsRegistry := fakes.NewFakePluginRegistry()
pluginsRegistry := pluginfakes.NewFakePluginRegistry()
require.NoError(t, pluginsRegistry.Add(context.Background(), &plugins.Plugin{
JSONData: plugins.JSONData{ID: pluginID, Backend: true},
}))
@@ -149,7 +149,7 @@ func TestInstrumentationMiddlewareStatusSource(t *testing.T) {
pCtx := backend.PluginContext{PluginID: pluginID, PluginVersion: "1.0.0"}
promRegistry := prometheus.NewRegistry()
pluginsRegistry := fakes.NewFakePluginRegistry()
pluginsRegistry := pluginfakes.NewFakePluginRegistry()
require.NoError(t, pluginsRegistry.Add(context.Background(), &plugins.Plugin{
JSONData: plugins.JSONData{ID: pluginID, Backend: true},
}))
@@ -18,8 +18,8 @@ import (
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angularinspector"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/process"
"github.com/grafana/grafana/pkg/plugins/manager/registry"
"github.com/grafana/grafana/pkg/plugins/manager/signature"
@@ -461,9 +461,9 @@ func TestLoader_Load(t *testing.T) {
},
}
for _, tt := range tests {
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
errTracker := pluginerrs.ProvideErrorTracker()
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, errTracker, pluginassets.NewLocalProvider())
@@ -550,16 +550,16 @@ func TestLoader_Load_ExternalRegistration(t *testing.T) {
},
}
backendFactoryProvider := fakes.NewFakeBackendProcessProvider()
backendFactoryProvider := pluginfakes.NewFakeBackendProcessProvider()
backendFactoryProvider.BackendFactoryFunc = func(ctx context.Context, plugin *plugins.Plugin) backendplugin.PluginFactoryFunc {
return func(pluginID string, logger log.Logger, tracer trace.Tracer, env func() []string) (backendplugin.Plugin, error) {
require.Equal(t, "grafana-test-datasource", pluginID)
return &fakes.FakeBackendPlugin{}, nil
return &pluginfakes.FakeBackendPlugin{}, nil
}
}
l := newLoaderWithOpts(t, cfg, loaderDepOpts{
authServiceRegistry: &fakes.FakeAuthService{
authServiceRegistry: &pluginfakes.FakeAuthService{
Result: &auth.ExternalService{
ClientID: "client-id",
ClientSecret: "secretz",
@@ -567,7 +567,7 @@ func TestLoader_Load_ExternalRegistration(t *testing.T) {
},
backendFactoryProvider: backendFactoryProvider,
})
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -661,14 +661,14 @@ func TestLoader_Load_MultiplePlugins(t *testing.T) {
}
for _, tt := range tests {
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
errTracker := pluginerrs.ProvideErrorTracker()
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, errTracker, pluginassets.NewLocalProvider())
t.Run(tt.name, func(t *testing.T) {
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -774,12 +774,12 @@ func TestLoader_Load_RBACReady(t *testing.T) {
}
for _, tt := range tests {
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -840,12 +840,12 @@ func TestLoader_Load_Signature_RootURL(t *testing.T) {
},
}
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
cfg := &config.PluginManagementCfg{GrafanaAppURL: defaultAppURL}
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -927,12 +927,12 @@ func TestLoader_Load_DuplicatePlugins(t *testing.T) {
},
}
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
cfg := &config.PluginManagementCfg{}
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -1018,21 +1018,21 @@ func TestLoader_Load_SkipUninitializedPlugins(t *testing.T) {
},
}
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
// Cause an initialization error
procPrvdr.BackendFactoryFunc = func(ctx context.Context, p *plugins.Plugin) backendplugin.PluginFactoryFunc {
return func(pluginID string, _ log.Logger, _ trace.Tracer, _ func() []string) (backendplugin.Plugin, error) {
if pluginID == "test-datasource" {
return nil, errors.New("failed to initialize")
}
return &fakes.FakePluginClient{}, nil
return &pluginfakes.FakePluginClient{}, nil
}
}
procMgr := fakes.NewFakeProcessManager()
procMgr := pluginfakes.NewFakeProcessManager()
cfg := &config.PluginManagementCfg{}
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -1071,7 +1071,7 @@ func TestLoader_AngularClass(t *testing.T) {
},
} {
t.Run(tc.name, func(t *testing.T) {
fakePluginSource := &fakes.FakePluginSource{
fakePluginSource := &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return tc.class
},
@@ -1094,7 +1094,7 @@ func TestLoader_AngularClass(t *testing.T) {
}
func TestLoader_Load_Angular(t *testing.T) {
fakePluginSource := &fakes.FakePluginSource{
fakePluginSource := &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -1227,13 +1227,13 @@ func TestLoader_Load_NestedPlugins(t *testing.T) {
child.Parent = parent
t.Run("Load nested External plugins", func(t *testing.T) {
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
reg := fakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
cfg := &config.PluginManagementCfg{}
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -1254,7 +1254,7 @@ func TestLoader_Load_NestedPlugins(t *testing.T) {
verifyState(t, expected, reg, procPrvdr, procMgr)
t.Run("Load will exclude plugins that already exist", func(t *testing.T) {
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -1428,12 +1428,12 @@ func TestLoader_Load_NestedPlugins(t *testing.T) {
child.Parent = parent
expected := []*plugins.Plugin{parent, child}
reg := fakes.NewFakePluginRegistry()
procPrvdr := fakes.NewFakeBackendProcessProvider()
procMgr := fakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
procMgr := pluginfakes.NewFakeProcessManager()
cfg := &config.PluginManagementCfg{}
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return plugins.ClassExternal
},
@@ -1471,13 +1471,13 @@ func newLoader(t *testing.T, cfg *config.PluginManagementCfg, reg registry.Servi
return ProvideService(cfg, pipeline.ProvideDiscoveryStage(cfg, reg),
pipeline.ProvideBootstrapStage(cfg, signature.DefaultCalculator(cfg), pluginAssetsProvider),
pipeline.ProvideValidationStage(cfg, signature.NewValidator(signature.NewUnsignedAuthorizer(cfg)), angularInspector),
pipeline.ProvideInitializationStage(cfg, reg, backendFactory, proc, &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), fakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
pipeline.ProvideInitializationStage(cfg, reg, backendFactory, proc, &pluginfakes.FakeAuthService{}, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), pluginfakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
terminate, errTracker)
}
func newLoaderWithOpts(t *testing.T, cfg *config.PluginManagementCfg, opts loaderDepOpts) *Loader {
reg := fakes.NewFakePluginRegistry()
proc := fakes.NewFakeProcessManager()
reg := pluginfakes.NewFakePluginRegistry()
proc := pluginfakes.NewFakeProcessManager()
terminate, err := pipeline.ProvideTerminationStage(cfg, reg, proc)
require.NoError(t, err)
@@ -1490,23 +1490,23 @@ func newLoaderWithOpts(t *testing.T, cfg *config.PluginManagementCfg, opts loade
authServiceRegistry := opts.authServiceRegistry
if authServiceRegistry == nil {
authServiceRegistry = &fakes.FakeAuthService{}
authServiceRegistry = &pluginfakes.FakeAuthService{}
}
backendFactoryProvider := opts.backendFactoryProvider
if backendFactoryProvider == nil {
backendFactoryProvider = fakes.NewFakeBackendProcessProvider()
backendFactoryProvider = pluginfakes.NewFakeBackendProcessProvider()
}
return ProvideService(cfg, pipeline.ProvideDiscoveryStage(cfg, reg),
pipeline.ProvideBootstrapStage(cfg, signature.DefaultCalculator(cfg), pluginassets.NewLocalProvider()),
pipeline.ProvideValidationStage(cfg, signature.NewValidator(signature.NewUnsignedAuthorizer(cfg)), angularInspector),
pipeline.ProvideInitializationStage(cfg, reg, backendFactoryProvider, proc, authServiceRegistry, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), fakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
pipeline.ProvideInitializationStage(cfg, reg, backendFactoryProvider, proc, authServiceRegistry, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), pluginfakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
terminate, errTracker)
}
func verifyState(t *testing.T, ps []*plugins.Plugin, reg registry.Service,
procPrvdr *fakes.FakeBackendProcessProvider, procMngr *fakes.FakeProcessManager,
procPrvdr *pluginfakes.FakeBackendProcessProvider, procMngr *pluginfakes.FakeProcessManager,
) {
t.Helper()
@@ -16,7 +16,7 @@ import (
"github.com/grafana/grafana/pkg/plugins/auth"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/envvars"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/setting"
)
@@ -29,7 +29,7 @@ func TestPluginEnvVarsProvider_PluginEnvVars(t *testing.T) {
},
}
licensing := &fakes.FakeLicensingService{
licensing := &pluginfakes.FakeLicensingService{
LicenseEdition: "test",
TokenRaw: "token",
LicensePath: "/path/to/ent/license",
@@ -10,7 +10,7 @@ import (
"github.com/grafana/grafana/pkg/infra/db/dbtest"
"github.com/grafana/grafana/pkg/infra/localcache"
"github.com/grafana/grafana/pkg/plugins"
pluginFakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/registry"
"github.com/grafana/grafana/pkg/services/datasources"
fakeDatasources "github.com/grafana/grafana/pkg/services/datasources/fakes"
@@ -41,7 +41,7 @@ func TestGet(t *testing.T) {
cfg := setting.NewCfg()
ds := &fakeDatasources.FakeDataSourceService{}
db := &dbtest.FakeDB{ExpectedError: pluginsettings.ErrPluginSettingNotFound}
store, err := pluginstore.NewPluginStoreForTest(preg, &pluginFakes.FakeLoader{}, &pluginFakes.FakeSourceRegistry{})
store, err := pluginstore.NewPluginStoreForTest(preg, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
pcp := plugincontext.ProvideService(cfg, localcache.ProvideService(),
store, &fakeDatasources.FakeCacheService{},
@@ -6,7 +6,7 @@ import (
"testing"
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/registry"
"github.com/grafana/grafana/pkg/plugins/repo"
"github.com/grafana/grafana/pkg/services/featuremgmt"
@@ -26,10 +26,10 @@ func TestService_IsDisabled(t *testing.T) {
&setting.Cfg{
PreinstallPluginsAsync: []setting.InstallPlugin{{ID: "myplugin"}},
},
pluginstore.New(registry.NewInMemory(), &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{}),
&fakes.FakePluginInstaller{},
pluginstore.New(registry.NewInMemory(), &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{}),
&pluginfakes.FakePluginInstaller{},
prometheus.NewRegistry(),
&fakes.FakePluginRepo{},
&pluginfakes.FakePluginRepo{},
featuremgmt.WithFeatures(),
&pluginchecker.FakePluginUpdateChecker{},
)
@@ -160,7 +160,7 @@ func TestService_Run(t *testing.T) {
}
installed := 0
installedFromURL := 0
store, err := pluginstore.NewPluginStoreForTest(preg, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
store, err := pluginstore.NewPluginStoreForTest(preg, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
s, err := ProvideService(
&setting.Cfg{
@@ -168,7 +168,7 @@ func TestService_Run(t *testing.T) {
PreinstallPluginsSync: tt.pluginsToInstallSync,
},
store,
&fakes.FakePluginInstaller{
&pluginfakes.FakePluginInstaller{
AddFunc: func(ctx context.Context, pluginID string, version string, opts plugins.AddOpts) error {
for _, plugin := range tt.pluginsToFail {
if plugin == pluginID {
@@ -193,7 +193,7 @@ func TestService_Run(t *testing.T) {
},
},
prometheus.NewRegistry(),
&fakes.FakePluginRepo{
&pluginfakes.FakePluginRepo{
GetPluginArchiveInfoFunc: func(_ context.Context, pluginID, version string, _ repo.CompatOpts) (*repo.PluginArchiveInfo, error) {
return tt.latestPlugin, nil
},
@@ -10,32 +10,32 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/log"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
)
func TestStore_ProvideService(t *testing.T) {
t.Run("Plugin sources are added in order", func(t *testing.T) {
var loadedSrcs []plugins.Class
l := &fakes.FakeLoader{
l := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
loadedSrcs = append(loadedSrcs, src.PluginClass(ctx))
return nil, nil
},
}
srcs := &fakes.FakeSourceRegistry{ListFunc: func(_ context.Context) []plugins.PluginSource {
srcs := &pluginfakes.FakeSourceRegistry{ListFunc: func(_ context.Context) []plugins.PluginSource {
return []plugins.PluginSource{
&fakes.FakePluginSource{
&pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return "1"
},
},
&fakes.FakePluginSource{
&pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return "2"
},
},
&fakes.FakePluginSource{
&pluginfakes.FakePluginSource{
PluginClassFunc: func(ctx context.Context) plugins.Class {
return "3"
},
@@ -43,7 +43,7 @@ func TestStore_ProvideService(t *testing.T) {
}
}}
service := ProvideService(fakes.NewFakePluginRegistry(), srcs, l)
service := ProvideService(pluginfakes.NewFakePluginRegistry(), srcs, l)
ctx := context.Background()
err := service.StartAsync(ctx)
require.NoError(t, err)
@@ -59,12 +59,12 @@ func TestStore_Plugin(t *testing.T) {
p1.RegisterClient(&DecommissionedPlugin{})
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-panel"}}
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
p2.ID: p2,
},
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
p, exists := ps.Plugin(context.Background(), p1.ID)
@@ -86,7 +86,7 @@ func TestStore_Plugins(t *testing.T) {
p5 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "e-test-panel", Type: plugins.TypePanel}}
p5.RegisterClient(&DecommissionedPlugin{})
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
p2.ID: p2,
@@ -94,7 +94,7 @@ func TestStore_Plugins(t *testing.T) {
p4.ID: p4,
p5.ID: p5,
},
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
ToGrafanaDTO(p1)
@@ -123,14 +123,14 @@ func TestStore_Plugins(t *testing.T) {
func TestStore_Routes(t *testing.T) {
t.Run("Routes returns all static routes for non-decommissioned plugins", func(t *testing.T) {
p1 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "a-test-renderer", Type: plugins.TypeRenderer}, FS: fakes.NewFakePluginFS("/some/dir")}
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "b-test-panel", Type: plugins.TypePanel}, FS: fakes.NewFakePluginFS("/grafana/")}
p4 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "d-test-datasource", Type: plugins.TypeDataSource}, FS: fakes.NewFakePluginFS("../test")}
p5 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "e-test-app", Type: plugins.TypeApp}, FS: fakes.NewFakePluginFS("any/path")}
p1 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "a-test-renderer", Type: plugins.TypeRenderer}, FS: pluginfakes.NewFakePluginFS("/some/dir")}
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "b-test-panel", Type: plugins.TypePanel}, FS: pluginfakes.NewFakePluginFS("/grafana/")}
p4 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "d-test-datasource", Type: plugins.TypeDataSource}, FS: pluginfakes.NewFakePluginFS("../test")}
p5 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "e-test-app", Type: plugins.TypeApp}, FS: pluginfakes.NewFakePluginFS("any/path")}
p6 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "f-test-app", Type: plugins.TypeApp}}
p6.RegisterClient(&DecommissionedPlugin{})
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
p2.ID: p2,
@@ -138,7 +138,7 @@ func TestStore_Routes(t *testing.T) {
p5.ID: p5,
p6.ID: p6,
},
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
sr := func(p *plugins.Plugin) *plugins.StaticRoute {
@@ -153,22 +153,22 @@ func TestStore_Routes(t *testing.T) {
func TestProcessManager_shutdown(t *testing.T) {
t.Run("When context is cancelled the plugin is stopped", func(t *testing.T) {
p := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-datasource", Type: plugins.TypeDataSource}} // Backend: true
backend := &fakes.FakeBackendPlugin{}
backend := &pluginfakes.FakeBackendPlugin{}
p.RegisterClient(backend)
p.SetLogger(log.NewTestLogger())
unloaded := false
ps := New(&fakes.FakePluginRegistry{
ps := New(&pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p.ID: p,
},
}, &fakes.FakeLoader{
}, &pluginfakes.FakeLoader{
UnloadFunc: func(_ context.Context, plugin *plugins.Plugin) (*plugins.Plugin, error) {
require.Equal(t, p, plugin)
unloaded = true
return nil, nil
},
}, &fakes.FakeSourceRegistry{})
}, &pluginfakes.FakeSourceRegistry{})
ctx, cancel := context.WithCancel(context.Background())
@@ -188,20 +188,20 @@ func TestProcessManager_shutdown(t *testing.T) {
t.Run("When shutdown fails, stopping method returns error", func(t *testing.T) {
p := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-datasource", Type: plugins.TypeDataSource}}
backend := &fakes.FakeBackendPlugin{}
backend := &pluginfakes.FakeBackendPlugin{}
p.RegisterClient(backend)
p.SetLogger(log.NewTestLogger())
expectedErr := errors.New("unload failed")
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p.ID: p,
},
}, &fakes.FakeLoader{
}, &pluginfakes.FakeLoader{
UnloadFunc: func(_ context.Context, plugin *plugins.Plugin) (*plugins.Plugin, error) {
return nil, expectedErr
},
}, &fakes.FakeSourceRegistry{})
}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
err = ps.stopping(nil)
@@ -216,12 +216,12 @@ func TestStore_availablePlugins(t *testing.T) {
p1.RegisterClient(&DecommissionedPlugin{})
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-app"}}
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
Store: map[string]*plugins.Plugin{
p1.ID: p1,
p2.ID: p2,
},
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
require.NoError(t, err)
aps := ps.availablePlugins(context.Background())
@@ -10,7 +10,7 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/sources"
)
@@ -20,7 +20,7 @@ func TestRenderer(t *testing.T) {
numLoaded := 0
numUnloaded := 0
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
require.True(t, src.PluginClass(ctx) == plugins.ClassExternal)
@@ -59,7 +59,7 @@ func TestRenderer(t *testing.T) {
p := &plugins.Plugin{
JSONData: plugins.JSONData{ID: "test"},
}
loader := &fakes.FakeLoader{
loader := &pluginfakes.FakeLoader{
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
numLoaded++
@@ -12,7 +12,6 @@ import (
"github.com/grafana/grafana/pkg/plugins/backendplugin/provider"
pluginsCfg "github.com/grafana/grafana/pkg/plugins/config"
"github.com/grafana/grafana/pkg/plugins/manager/client"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/loader"
"github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angularinspector"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap"
@@ -20,6 +19,7 @@ import (
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/initialization"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/termination"
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/validation"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/plugins/manager/process"
"github.com/grafana/grafana/pkg/plugins/manager/registry"
"github.com/grafana/grafana/pkg/plugins/manager/signature"
@@ -52,7 +52,7 @@ func CreateIntegrationTestCtx(t *testing.T, cfg *setting.Cfg, coreRegistry *core
disc := pipeline.ProvideDiscoveryStage(pCfg, reg)
boot := pipeline.ProvideBootstrapStage(pCfg, signature.ProvideService(pCfg, statickey.New()), pluginassets.NewLocalProvider())
valid := pipeline.ProvideValidationStage(pCfg, signature.NewValidator(signature.NewUnsignedAuthorizer(pCfg)), angularInspector)
init := pipeline.ProvideInitializationStage(pCfg, reg, provider.ProvideService(coreRegistry), proc, &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
init := pipeline.ProvideInitializationStage(pCfg, reg, provider.ProvideService(coreRegistry), proc, &pluginfakes.FakeAuthService{}, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
term, err := pipeline.ProvideTerminationStage(pCfg, reg, proc)
require.NoError(t, err)
@@ -98,7 +98,7 @@ func CreateTestLoader(t *testing.T, cfg *pluginsCfg.PluginManagementCfg, opts Lo
if opts.Initializer == nil {
reg := registry.ProvideService()
coreRegistry := coreplugin.NewRegistry(make(map[string]backendplugin.PluginFactoryFunc))
opts.Initializer = pipeline.ProvideInitializationStage(cfg, reg, provider.ProvideService(coreRegistry), process.ProvideService(), &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
opts.Initializer = pipeline.ProvideInitializationStage(cfg, reg, provider.ProvideService(coreRegistry), process.ProvideService(), &pluginfakes.FakeAuthService{}, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
}
if opts.Terminator == nil {
+1 -1
View File
@@ -17,7 +17,7 @@ import (
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/serverlock"
"github.com/grafana/grafana/pkg/infra/tracing"
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
acmock "github.com/grafana/grafana/pkg/services/accesscontrol/mock"
@@ -10,7 +10,7 @@ import (
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/kvstore"
"github.com/grafana/grafana/pkg/infra/log"
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
acmock "github.com/grafana/grafana/pkg/services/accesscontrol/mock"
"github.com/grafana/grafana/pkg/services/datasources"
dsservice "github.com/grafana/grafana/pkg/services/datasources/service"
+2 -2
View File
@@ -13,7 +13,7 @@ import (
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/services/pluginsintegration/managedplugins"
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginchecker"
@@ -262,7 +262,7 @@ func TestPluginUpdateChecker_updateAll(t *testing.T) {
availableUpdates: availableUpdates,
log: log.NewNopLogger(),
tracer: tracing.InitializeTracerForTest(),
pluginInstaller: &fakes.FakePluginInstaller{
pluginInstaller: &pluginfakes.FakePluginInstaller{
AddFunc: func(ctx context.Context, pluginID, version string, opts plugins.AddOpts) error {
pluginsFakeStore[pluginID] = version
return nil