Replace usage of http.DefaultClient and http.DefaultTransport (#104135)

Remove usage of http.DefaultClient and http.DefaultTransport

Part of grafana/data-sources#484
This commit is contained in:
beejeebus
2025-05-09 13:26:39 -04:00
committed by GitHub
parent 8f4b2bbece
commit 8f79e4882f
18 changed files with 120 additions and 44 deletions
+9 -18
View File
@@ -16,20 +16,6 @@ import (
"github.com/grafana/grafana/pkg/setting"
)
func setClientWithoutRedirectFollow(t *testing.T) {
t.Helper()
old := http.DefaultClient
http.DefaultClient = &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
}
t.Cleanup(func() {
http.DefaultClient = old
})
}
func TestOAuthLogin_Redirect(t *testing.T) {
type testCase struct {
desc string
@@ -79,7 +65,9 @@ func TestOAuthLogin_Redirect(t *testing.T) {
})
// we need to prevent the http.Client from following redirects
setClientWithoutRedirectFollow(t)
server.HttpClient.CheckRedirect = func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
res, err := server.Send(server.NewGetRequest("/login/generic_oauth"))
require.NoError(t, err)
@@ -155,7 +143,9 @@ func TestOAuthLogin_AuthorizationCode(t *testing.T) {
})
// we need to prevent the http.Client from following redirects
setClientWithoutRedirectFollow(t)
server.HttpClient.CheckRedirect = func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
res, err := server.Send(server.NewGetRequest("/login/generic_oauth?code=code"))
require.NoError(t, err)
@@ -198,8 +188,9 @@ func TestOAuthLogin_Error(t *testing.T) {
hs.log = log.NewNopLogger()
hs.SecretsService = fakes.NewFakeSecretsService()
})
setClientWithoutRedirectFollow(t)
server.HttpClient.CheckRedirect = func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
res, err := server.Send(server.NewGetRequest("/login/azuread?error=someerror"))
require.NoError(t, err)
+3 -1
View File
@@ -13,6 +13,7 @@ import (
"github.com/grafana/grafana/pkg/api/dtos"
"github.com/grafana/grafana/pkg/services/licensing"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/util/httpclient"
)
type ManifestInfo struct {
@@ -36,6 +37,7 @@ type EntryPointInfo struct {
var (
entryPointAssetsCacheMu sync.RWMutex // guard entryPointAssetsCache
entryPointAssetsCache *dtos.EntryPointAssets // TODO: get rid of global state
httpClient = httpclient.New()
)
func GetWebAssets(ctx context.Context, cfg *setting.Cfg, license licensing.Licensing) (*dtos.EntryPointAssets, error) {
@@ -88,7 +90,7 @@ func readWebAssetsFromCDN(ctx context.Context, baseURL string) (*dtos.EntryPoint
if err != nil {
return nil, err
}
response, err := http.DefaultClient.Do(req)
response, err := httpClient.Do(req)
if err != nil {
return nil, err
}