From 6e60242a187b283d674d773873d82b36a42b1667 Mon Sep 17 00:00:00 2001 From: Matthew Fisher Date: Wed, 3 Jul 2019 08:58:28 -0700 Subject: [PATCH] ref(getter): change NewHTTPGetter and NewPluginGetter to return type Getter Signed-off-by: Matthew Fisher --- pkg/getter/getter.go | 2 +- pkg/getter/httpgetter.go | 20 ++------------------ pkg/getter/httpgetter_test.go | 19 ++++++++++++------- pkg/getter/plugingetter.go | 6 +++--- pkg/getter/plugingetter_test.go | 4 ++-- 5 files changed, 20 insertions(+), 31 deletions(-) diff --git a/pkg/getter/getter.go b/pkg/getter/getter.go index 7fba441c1..24059e00c 100644 --- a/pkg/getter/getter.go +++ b/pkg/getter/getter.go @@ -124,7 +124,7 @@ func All(settings cli.EnvSettings) Providers { result := Providers{ { Schemes: []string{"http", "https"}, - New: newHTTPGetter, + New: NewHTTPGetter, }, } pluginDownloaders, _ := collectPlugins(settings) diff --git a/pkg/getter/httpgetter.go b/pkg/getter/httpgetter.go index 94e182b5b..6c29dd516 100644 --- a/pkg/getter/httpgetter.go +++ b/pkg/getter/httpgetter.go @@ -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 { diff --git a/pkg/getter/httpgetter_test.go b/pkg/getter/httpgetter_test.go index fdefc268d..ca3a30c61 100644 --- a/pkg/getter/httpgetter_test.go +++ b/pkg/getter/httpgetter_test.go @@ -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) } diff --git a/pkg/getter/plugingetter.go b/pkg/getter/plugingetter.go index 77f09f22d..0b2b0fc8a 100644 --- a/pkg/getter/plugingetter.go +++ b/pkg/getter/plugingetter.go @@ -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, diff --git a/pkg/getter/plugingetter_test.go b/pkg/getter/plugingetter_test.go index 341b88e7a..8388cc22f 100644 --- a/pkg/getter/plugingetter_test.go +++ b/pkg/getter/plugingetter_test.go @@ -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)