X Tutup
Skip to content

Commit db5bbf7

Browse files
author
vilmibm
committed
use manager io in Upgrade
1 parent 425bc64 commit db5bbf7

File tree

6 files changed

+39
-55
lines changed

6 files changed

+39
-55
lines changed

pkg/cmd/extension/command.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func NewCmdExtension(f *cmdutil.Factory) *cobra.Command {
132132
if len(args) > 0 {
133133
name = normalizeExtensionSelector(args[0])
134134
}
135-
return m.Upgrade(name, flagForce, io.Out, io.ErrOut)
135+
return m.Upgrade(name, flagForce)
136136
},
137137
}
138138
cmd.Flags().BoolVar(&flagAll, "all", false, "Upgrade all extensions")

pkg/cmd/extension/command_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package extension
22

33
import (
4-
"io"
54
"io/ioutil"
65
"net/http"
76
"os"
@@ -94,7 +93,7 @@ func TestNewCmdExtension(t *testing.T) {
9493
name: "upgrade an extension",
9594
args: []string{"upgrade", "hello"},
9695
managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) {
97-
em.UpgradeFunc = func(name string, force bool, out, errOut io.Writer) error {
96+
em.UpgradeFunc = func(name string, force bool) error {
9897
return nil
9998
}
10099
return func(t *testing.T) {
@@ -108,7 +107,7 @@ func TestNewCmdExtension(t *testing.T) {
108107
name: "upgrade an extension gh-prefix",
109108
args: []string{"upgrade", "gh-hello"},
110109
managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) {
111-
em.UpgradeFunc = func(name string, force bool, out, errOut io.Writer) error {
110+
em.UpgradeFunc = func(name string, force bool) error {
112111
return nil
113112
}
114113
return func(t *testing.T) {
@@ -122,7 +121,7 @@ func TestNewCmdExtension(t *testing.T) {
122121
name: "upgrade an extension full name",
123122
args: []string{"upgrade", "monalisa/gh-hello"},
124123
managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) {
125-
em.UpgradeFunc = func(name string, force bool, out, errOut io.Writer) error {
124+
em.UpgradeFunc = func(name string, force bool) error {
126125
return nil
127126
}
128127
return func(t *testing.T) {
@@ -136,7 +135,7 @@ func TestNewCmdExtension(t *testing.T) {
136135
name: "upgrade all",
137136
args: []string{"upgrade", "--all"},
138137
managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) {
139-
em.UpgradeFunc = func(name string, force bool, out, errOut io.Writer) error {
138+
em.UpgradeFunc = func(name string, force bool) error {
140139
return nil
141140
}
142141
return func(t *testing.T) {

pkg/cmd/extension/manager.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ func (m *Manager) installGit(cloneURL string, stdout, stderr io.Writer) error {
306306

307307
var localExtensionUpgradeError = errors.New("local extensions can not be upgraded")
308308

309-
func (m *Manager) Upgrade(name string, force bool, stdout, stderr io.Writer) error {
309+
func (m *Manager) Upgrade(name string, force bool) error {
310310
exe, err := m.lookPath("git")
311311
if err != nil {
312312
return err
@@ -320,14 +320,14 @@ func (m *Manager) Upgrade(name string, force bool, stdout, stderr io.Writer) err
320320
someUpgraded := false
321321
for _, f := range exts {
322322
if name == "" {
323-
fmt.Fprintf(stdout, "[%s]: ", f.Name())
323+
fmt.Fprintf(m.io.Out, "[%s]: ", f.Name())
324324
} else if f.Name() != name {
325325
continue
326326
}
327327

328328
if f.IsLocal() {
329329
if name == "" {
330-
fmt.Fprintf(stdout, "%s\n", localExtensionUpgradeError)
330+
fmt.Fprintf(m.io.Out, "%s\n", localExtensionUpgradeError)
331331
} else {
332332
err = localExtensionUpgradeError
333333
}
@@ -344,7 +344,7 @@ func (m *Manager) Upgrade(name string, force bool, stdout, stderr io.Writer) err
344344
pullCmd := m.newCommand(exe, "-C", dir, "--git-dir="+filepath.Join(dir, ".git"), "pull", "--ff-only")
345345
cmds = []*exec.Cmd{pullCmd}
346346
}
347-
if e := runCmds(cmds, stdout, stderr); e != nil {
347+
if e := runCmds(cmds, m.io.Out, m.io.ErrOut); e != nil {
348348
err = e
349349
}
350350
someUpgraded = true

pkg/cmd/extension/manager_test.go

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,11 @@ func TestManager_Upgrade_AllExtensions(t *testing.T) {
108108
assert.NoError(t, stubExtension(filepath.Join(tempDir, "extensions", "gh-two", "gh-two")))
109109
assert.NoError(t, stubLocalExtension(tempDir, filepath.Join(tempDir, "extensions", "gh-local", "gh-local")))
110110

111-
m := newTestManager(tempDir, nil, nil)
111+
io, _, stdout, stderr := iostreams.Test()
112112

113-
stdout := &bytes.Buffer{}
114-
stderr := &bytes.Buffer{}
115-
err := m.Upgrade("", false, stdout, stderr)
113+
m := newTestManager(tempDir, nil, io)
114+
115+
err := m.Upgrade("", false)
116116
assert.NoError(t, err)
117117

118118
assert.Equal(t, heredoc.Docf(
@@ -133,11 +133,11 @@ func TestManager_Upgrade_RemoteExtension(t *testing.T) {
133133
tempDir := t.TempDir()
134134
assert.NoError(t, stubExtension(filepath.Join(tempDir, "extensions", "gh-remote", "gh-remote")))
135135

136-
m := newTestManager(tempDir, nil, nil)
136+
io, _, stdout, stderr := iostreams.Test()
137137

138-
stdout := &bytes.Buffer{}
139-
stderr := &bytes.Buffer{}
140-
err := m.Upgrade("remote", false, stdout, stderr)
138+
m := newTestManager(tempDir, nil, io)
139+
140+
err := m.Upgrade("remote", false)
141141
assert.NoError(t, err)
142142
assert.Equal(t, heredoc.Docf(
143143
`
@@ -153,11 +153,10 @@ func TestManager_Upgrade_LocalExtension(t *testing.T) {
153153
tempDir := t.TempDir()
154154
assert.NoError(t, stubLocalExtension(tempDir, filepath.Join(tempDir, "extensions", "gh-local", "gh-local")))
155155

156-
m := newTestManager(tempDir, nil, nil)
156+
io, _, stdout, stderr := iostreams.Test()
157+
m := newTestManager(tempDir, nil, io)
157158

158-
stdout := &bytes.Buffer{}
159-
stderr := &bytes.Buffer{}
160-
err := m.Upgrade("local", false, stdout, stderr)
159+
err := m.Upgrade("local", false)
161160
assert.EqualError(t, err, "local extensions can not be upgraded")
162161
assert.Equal(t, "", stdout.String())
163162
assert.Equal(t, "", stderr.String())
@@ -170,11 +169,10 @@ func TestManager_Upgrade_Force(t *testing.T) {
170169

171170
assert.NoError(t, stubExtension(filepath.Join(tempDir, "extensions", "gh-remote", "gh-remote")))
172171

173-
m := newTestManager(tempDir, nil, nil)
172+
io, _, stdout, stderr := iostreams.Test()
173+
m := newTestManager(tempDir, nil, io)
174174

175-
stdout := &bytes.Buffer{}
176-
stderr := &bytes.Buffer{}
177-
err := m.Upgrade("remote", true, stdout, stderr)
175+
err := m.Upgrade("remote", true)
178176
assert.NoError(t, err)
179177
assert.Equal(t, heredoc.Docf(
180178
`
@@ -192,11 +190,10 @@ func TestManager_Upgrade_Force(t *testing.T) {
192190
func TestManager_Upgrade_NoExtensions(t *testing.T) {
193191
tempDir := t.TempDir()
194192

195-
m := newTestManager(tempDir, nil, nil)
193+
io, _, stdout, stderr := iostreams.Test()
194+
m := newTestManager(tempDir, nil, io)
196195

197-
stdout := &bytes.Buffer{}
198-
stderr := &bytes.Buffer{}
199-
err := m.Upgrade("", false, stdout, stderr)
196+
err := m.Upgrade("", false)
200197
assert.EqualError(t, err, "no extensions installed")
201198
assert.Equal(t, "", stdout.String())
202199
assert.Equal(t, "", stderr.String())

pkg/extensions/extension.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type ExtensionManager interface {
2020
List(includeMetadata bool) []Extension
2121
Install(ghrepo.Interface) error
2222
InstallLocal(dir string) error
23-
Upgrade(name string, force bool, stdout, stderr io.Writer) error
23+
Upgrade(name string, force bool) error
2424
Remove(name string) error
2525
Dispatch(args []string, stdin io.Reader, stdout, stderr io.Writer) (bool, error)
2626
Create(name string) error

pkg/extensions/manager_mock.go

Lines changed: 12 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
X Tutup