ref(getter): change NewHTTPGetter and NewPluginGetter to return type Getter

Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
pull/5922/head
Matthew Fisher 5 years ago
parent 2800c56f9d
commit 6e60242a18
No known key found for this signature in database
GPG Key ID: 92AA783CBAAE8E3B

@ -124,7 +124,7 @@ func All(settings cli.EnvSettings) Providers {
result := Providers{
{
Schemes: []string{"http", "https"},
New: newHTTPGetter,
New: NewHTTPGetter,
},
}
pluginDownloaders, _ := collectPlugins(settings)

@ -32,17 +32,6 @@ type HTTPGetter struct {
opts options
}
// SetBasicAuth sets the request's Authorization header to use the provided credentials.
func (g *HTTPGetter) SetBasicAuth(username, password string) {
g.opts.username = username
g.opts.password = password
}
// SetUserAgent sets the request's User-Agent header to use the provided agent name.
func (g *HTTPGetter) SetUserAgent(userAgent string) {
g.opts.userAgent = userAgent
}
//Get performs a Get from repo.Getter and returns the body.
func (g *HTTPGetter) Get(href string) (*bytes.Buffer, error) {
return g.get(href)
@ -79,13 +68,8 @@ func (g *HTTPGetter) get(href string) (*bytes.Buffer, error) {
return buf, err
}
// newHTTPGetter constructs a valid http/https client as Getter
func newHTTPGetter(options ...Option) (Getter, error) {
return NewHTTPGetter(options...)
}
// NewHTTPGetter constructs a valid http/https client as HTTPGetter
func NewHTTPGetter(options ...Option) (*HTTPGetter, error) {
// NewHTTPGetter constructs a valid http/https client as a Getter
func NewHTTPGetter(options ...Option) (Getter, error) {
var client HTTPGetter
for _, opt := range options {

@ -28,22 +28,22 @@ import (
)
func TestHTTPGetter(t *testing.T) {
g, err := newHTTPGetter(WithURL("http://example.com"))
g, err := NewHTTPGetter(WithURL("http://example.com"))
if err != nil {
t.Fatal(err)
}
if hg, ok := g.(*HTTPGetter); !ok {
t.Fatal("Expected newHTTPGetter to produce an httpGetter")
t.Fatal("Expected NewHTTPGetter to produce an *HTTPGetter")
} else if hg.client != http.DefaultClient {
t.Fatal("Expected newHTTPGetter to return a default HTTP client.")
t.Fatal("Expected NewHTTPGetter to return a default HTTP client.")
}
// Test with SSL:
cd := "../../testdata"
join := filepath.Join
ca, pub, priv := join(cd, "ca.pem"), join(cd, "crt.pem"), join(cd, "key.pem")
g, err = newHTTPGetter(
g, err = NewHTTPGetter(
WithURL("http://example.com"),
WithTLSClientConfig(pub, priv, ca),
)
@ -53,18 +53,18 @@ func TestHTTPGetter(t *testing.T) {
hg, ok := g.(*HTTPGetter)
if !ok {
t.Fatal("Expected newHTTPGetter to produce an httpGetter")
t.Fatal("Expected NewHTTPGetter to produce an *HTTPGetter")
}
transport, ok := hg.client.Transport.(*http.Transport)
if !ok {
t.Errorf("Expected newHTTPGetter to set up an HTTP transport")
t.Errorf("Expected NewHTTPGetter to set up an HTTP transport")
}
test.AssertGoldenString(t, transport.TLSClientConfig.ServerName, "output/httpgetter-servername.txt")
// Test other options
hg, err = NewHTTPGetter(
g, err = NewHTTPGetter(
WithBasicAuth("I", "Am"),
WithUserAgent("Groot"),
)
@ -72,6 +72,11 @@ func TestHTTPGetter(t *testing.T) {
t.Fatal(err)
}
hg, ok = g.(*HTTPGetter)
if !ok {
t.Fatal("expected NewHTTPGetter to produce an *HTTPGetter")
}
if hg.opts.username != "I" {
t.Errorf("Expected NewHTTPGetter to contain %q as the username, got %q", "I", hg.opts.username)
}

@ -40,7 +40,7 @@ func collectPlugins(settings cli.EnvSettings) (Providers, error) {
for _, downloader := range plugin.Metadata.Downloaders {
result = append(result, Provider{
Schemes: downloader.Protocols,
New: newPluginGetter(
New: NewPluginGetter(
downloader.Command,
settings,
plugin.Metadata.Name,
@ -82,8 +82,8 @@ func (p *pluginGetter) Get(href string) (*bytes.Buffer, error) {
return buf, nil
}
// newPluginGetter constructs a valid plugin getter
func newPluginGetter(command string, settings cli.EnvSettings, name, base string) Constructor {
// NewPluginGetter constructs a valid plugin getter
func NewPluginGetter(command string, settings cli.EnvSettings, name, base string) Constructor {
return func(options ...Option) (Getter, error) {
result := &pluginGetter{
command: command,

@ -77,7 +77,7 @@ func TestPluginGetter(t *testing.T) {
os.Setenv("HELM_HOME", "")
env := hh(false)
pg := newPluginGetter("echo", env, "test", ".")
pg := NewPluginGetter("echo", env, "test", ".")
g, err := pg()
if err != nil {
t.Fatal(err)
@ -105,7 +105,7 @@ func TestPluginSubCommands(t *testing.T) {
os.Setenv("HELM_HOME", "")
env := hh(false)
pg := newPluginGetter("echo -n", env, "test", ".")
pg := NewPluginGetter("echo -n", env, "test", ".")
g, err := pg()
if err != nil {
t.Fatal(err)

Loading…
Cancel
Save