Skip to content

Commit c265961

Browse files
committed
Fix unit tests
1 parent a7c0f77 commit c265961

File tree

5 files changed

+90
-66
lines changed

5 files changed

+90
-66
lines changed

arduino/resources/helpers_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ func TestDownloadApplyUserAgentHeaderUsingConfig(t *testing.T) {
5454
URL: srv.URL,
5555
}
5656

57-
httpClient := httpclient.New(&httpclient.Config{UserAgent: goldUserAgentValue})
57+
httpclient.Init(&httpclient.Config{UserAgent: goldUserAgentValue})
58+
httpClient := httpclient.Get()
5859

5960
d, err := r.Download(tmp, &downloader.Config{HttpClient: *httpClient})
6061
require.NoError(t, err)

cli/arguments/reference_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
"testing"
2020

2121
"github.com/arduino/arduino-cli/cli/arguments"
22-
"github.com/arduino/arduino-cli/configuration"
22+
"github.com/arduino/arduino-cli/cli/instance"
2323
"github.com/stretchr/testify/assert"
2424
"github.com/stretchr/testify/require"
2525
)
@@ -47,7 +47,8 @@ var badCores = []struct {
4747
}
4848

4949
func init() {
50-
configuration.Settings = configuration.Init("")
50+
instance.Create("/fake/config.yaml")
51+
instance.Init()
5152
}
5253

5354
func TestArgsStringify(t *testing.T) {

commands/board/list_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,18 @@ import (
2424

2525
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2626
"github.com/arduino/arduino-cli/arduino/discovery"
27-
"github.com/arduino/arduino-cli/configuration"
27+
"github.com/arduino/arduino-cli/httpclient"
2828
"github.com/arduino/go-paths-helper"
2929
"github.com/arduino/go-properties-orderedmap"
3030
"github.com/stretchr/testify/require"
3131
semver "go.bug.st/relaxed-semver"
3232
)
3333

3434
func init() {
35-
configuration.Settings = configuration.Init("")
35+
httpclient.Init(&httpclient.Config{
36+
UserAgent: "tests",
37+
Proxy: nil,
38+
})
3639
}
3740

3841
func TestGetByVidPid(t *testing.T) {

commands/core/search_test.go

Lines changed: 79 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -16,191 +16,200 @@
1616
package core
1717

1818
import (
19+
"context"
1920
"os"
2021
"testing"
2122

22-
"github.com/arduino/arduino-cli/cli/instance"
23-
"github.com/arduino/arduino-cli/configuration"
24-
"github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
23+
"github.com/arduino/arduino-cli/commands"
24+
"github.com/arduino/arduino-cli/httpclient"
2525
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2626
"github.com/arduino/go-paths-helper"
2727
"github.com/stretchr/testify/require"
2828
)
2929

3030
func TestPlatformSearch(t *testing.T) {
31-
32-
dataDir := paths.TempDir().Join("test", "data_dir")
33-
downloadDir := paths.TempDir().Join("test", "staging")
31+
testDir := paths.TempDir().Join("test", t.Name())
32+
dataDir := testDir.Join("data_dir")
33+
downloadDir := testDir.Join("staging")
3434
os.Setenv("ARDUINO_DATA_DIR", dataDir.String())
3535
os.Setenv("ARDUINO_DOWNLOADS_DIR", downloadDir.String())
3636
dataDir.MkdirAll()
3737
downloadDir.MkdirAll()
38-
defer paths.TempDir().Join("test").RemoveAll()
38+
defer testDir.RemoveAll()
3939
err := paths.New("testdata").Join("package_index.json").CopyTo(dataDir.Join("package_index.json"))
4040
require.Nil(t, err)
4141

42-
configuration.Settings = configuration.Init(paths.TempDir().Join("test", "arduino-cli.yaml").String())
43-
44-
inst := instance.CreateAndInit()
42+
createRes, err := commands.Create(&rpc.CreateRequest{
43+
ConfigFile: testDir.Join("arduino-cli.yaml").String(),
44+
})
45+
require.NoError(t, err)
46+
inst := commands.GetInstance(createRes.Instance.Id)
4547
require.NotNil(t, inst)
48+
config, err := httpclient.ConfigFromSettings(inst.Settings)
49+
require.NoError(t, err)
50+
httpclient.Init(config)
51+
commands.Init(&rpc.InitRequest{
52+
Instance: inst.ToRPC(),
53+
}, nil)
54+
defer commands.Destroy(context.Background(), &rpc.DestroyRequest{Instance: inst.ToRPC()})
4655

47-
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
48-
Instance: inst,
56+
res, err := PlatformSearch(&rpc.PlatformSearchRequest{
57+
Instance: inst.ToRPC(),
4958
SearchArgs: "retrokit",
5059
AllVersions: true,
5160
})
52-
require.Nil(t, stat)
61+
require.Nil(t, err)
5362
require.NotNil(t, res)
5463

5564
require.Len(t, res.SearchOutput, 2)
56-
require.Contains(t, res.SearchOutput, &commands.Platform{
65+
require.Contains(t, res.SearchOutput, &rpc.Platform{
5766
Id: "Retrokits-RK002:arm",
5867
Installed: "",
5968
Latest: "1.0.5",
6069
Name: "RK002",
6170
Maintainer: "Retrokits (www.retrokits.com)",
6271
Website: "https://www.retrokits.com",
6372
Email: "info@retrokits.com",
64-
Boards: []*commands.Board{{Name: "RK002"}},
73+
Boards: []*rpc.Board{{Name: "RK002"}},
6574
})
66-
require.Contains(t, res.SearchOutput, &commands.Platform{
75+
require.Contains(t, res.SearchOutput, &rpc.Platform{
6776
Id: "Retrokits-RK002:arm",
6877
Installed: "",
6978
Latest: "1.0.6",
7079
Name: "RK002",
7180
Maintainer: "Retrokits (www.retrokits.com)",
7281
Website: "https://www.retrokits.com",
7382
Email: "info@retrokits.com",
74-
Boards: []*commands.Board{{Name: "RK002"}},
83+
Boards: []*rpc.Board{{Name: "RK002"}},
7584
})
7685

77-
res, stat = PlatformSearch(&rpc.PlatformSearchRequest{
78-
Instance: inst,
86+
res, err = PlatformSearch(&rpc.PlatformSearchRequest{
87+
Instance: inst.ToRPC(),
7988
SearchArgs: "retrokit",
8089
AllVersions: false,
8190
})
82-
require.Nil(t, stat)
91+
require.Nil(t, err)
8392
require.NotNil(t, res)
8493
require.Len(t, res.SearchOutput, 1)
85-
require.Contains(t, res.SearchOutput, &commands.Platform{
94+
require.Contains(t, res.SearchOutput, &rpc.Platform{
8695
Id: "Retrokits-RK002:arm",
8796
Installed: "",
8897
Latest: "1.0.6",
8998
Name: "RK002",
9099
Maintainer: "Retrokits (www.retrokits.com)",
91100
Website: "https://www.retrokits.com",
92101
Email: "info@retrokits.com",
93-
Boards: []*commands.Board{{Name: "RK002"}},
102+
Boards: []*rpc.Board{{Name: "RK002"}},
94103
})
95104

96105
// Search the Package Maintainer
97-
res, stat = PlatformSearch(&rpc.PlatformSearchRequest{
98-
Instance: inst,
106+
res, err = PlatformSearch(&rpc.PlatformSearchRequest{
107+
Instance: inst.ToRPC(),
99108
SearchArgs: "Retrokits (www.retrokits.com)",
100109
AllVersions: true,
101110
})
102-
require.Nil(t, stat)
111+
require.Nil(t, err)
103112
require.NotNil(t, res)
104113
require.Len(t, res.SearchOutput, 2)
105-
require.Contains(t, res.SearchOutput, &commands.Platform{
114+
require.Contains(t, res.SearchOutput, &rpc.Platform{
106115
Id: "Retrokits-RK002:arm",
107116
Installed: "",
108117
Latest: "1.0.5",
109118
Name: "RK002",
110119
Maintainer: "Retrokits (www.retrokits.com)",
111120
Website: "https://www.retrokits.com",
112121
Email: "info@retrokits.com",
113-
Boards: []*commands.Board{{Name: "RK002"}},
122+
Boards: []*rpc.Board{{Name: "RK002"}},
114123
})
115-
require.Contains(t, res.SearchOutput, &commands.Platform{
124+
require.Contains(t, res.SearchOutput, &rpc.Platform{
116125
Id: "Retrokits-RK002:arm",
117126
Installed: "",
118127
Latest: "1.0.6",
119128
Name: "RK002",
120129
Maintainer: "Retrokits (www.retrokits.com)",
121130
Website: "https://www.retrokits.com",
122131
Email: "info@retrokits.com",
123-
Boards: []*commands.Board{{Name: "RK002"}},
132+
Boards: []*rpc.Board{{Name: "RK002"}},
124133
})
125134

126135
// Search using the Package name
127-
res, stat = PlatformSearch(&rpc.PlatformSearchRequest{
128-
Instance: inst,
136+
res, err = PlatformSearch(&rpc.PlatformSearchRequest{
137+
Instance: inst.ToRPC(),
129138
SearchArgs: "Retrokits-RK002",
130139
AllVersions: true,
131140
})
132-
require.Nil(t, stat)
141+
require.Nil(t, err)
133142
require.NotNil(t, res)
134143
require.Len(t, res.SearchOutput, 2)
135-
require.Contains(t, res.SearchOutput, &commands.Platform{
144+
require.Contains(t, res.SearchOutput, &rpc.Platform{
136145
Id: "Retrokits-RK002:arm",
137146
Installed: "",
138147
Latest: "1.0.5",
139148
Name: "RK002",
140149
Maintainer: "Retrokits (www.retrokits.com)",
141150
Website: "https://www.retrokits.com",
142151
Email: "info@retrokits.com",
143-
Boards: []*commands.Board{{Name: "RK002"}},
152+
Boards: []*rpc.Board{{Name: "RK002"}},
144153
})
145-
require.Contains(t, res.SearchOutput, &commands.Platform{
154+
require.Contains(t, res.SearchOutput, &rpc.Platform{
146155
Id: "Retrokits-RK002:arm",
147156
Installed: "",
148157
Latest: "1.0.6",
149158
Name: "RK002",
150159
Maintainer: "Retrokits (www.retrokits.com)",
151160
Website: "https://www.retrokits.com",
152161
Email: "info@retrokits.com",
153-
Boards: []*commands.Board{{Name: "RK002"}},
162+
Boards: []*rpc.Board{{Name: "RK002"}},
154163
})
155164

156165
// Search using the Platform name
157-
res, stat = PlatformSearch(&rpc.PlatformSearchRequest{
158-
Instance: inst,
166+
res, err = PlatformSearch(&rpc.PlatformSearchRequest{
167+
Instance: inst.ToRPC(),
159168
SearchArgs: "rk002",
160169
AllVersions: true,
161170
})
162-
require.Nil(t, stat)
171+
require.Nil(t, err)
163172
require.NotNil(t, res)
164173
require.Len(t, res.SearchOutput, 2)
165-
require.Contains(t, res.SearchOutput, &commands.Platform{
174+
require.Contains(t, res.SearchOutput, &rpc.Platform{
166175
Id: "Retrokits-RK002:arm",
167176
Installed: "",
168177
Latest: "1.0.5",
169178
Name: "RK002",
170179
Maintainer: "Retrokits (www.retrokits.com)",
171180
Website: "https://www.retrokits.com",
172181
Email: "info@retrokits.com",
173-
Boards: []*commands.Board{{Name: "RK002"}},
182+
Boards: []*rpc.Board{{Name: "RK002"}},
174183
})
175-
require.Contains(t, res.SearchOutput, &commands.Platform{
184+
require.Contains(t, res.SearchOutput, &rpc.Platform{
176185
Id: "Retrokits-RK002:arm",
177186
Installed: "",
178187
Latest: "1.0.6",
179188
Name: "RK002",
180189
Maintainer: "Retrokits (www.retrokits.com)",
181190
Website: "https://www.retrokits.com",
182191
Email: "info@retrokits.com",
183-
Boards: []*commands.Board{{Name: "RK002"}},
192+
Boards: []*rpc.Board{{Name: "RK002"}},
184193
})
185194

186195
// Search using a board name
187-
res, stat = PlatformSearch(&rpc.PlatformSearchRequest{
188-
Instance: inst,
196+
res, err = PlatformSearch(&rpc.PlatformSearchRequest{
197+
Instance: inst.ToRPC(),
189198
SearchArgs: "Yún",
190199
AllVersions: true,
191200
})
192-
require.Nil(t, stat)
201+
require.Nil(t, err)
193202
require.NotNil(t, res)
194203
require.Len(t, res.SearchOutput, 1)
195-
require.Contains(t, res.SearchOutput, &commands.Platform{
204+
require.Contains(t, res.SearchOutput, &rpc.Platform{
196205
Id: "arduino:avr",
197206
Installed: "",
198207
Latest: "1.8.3",
199208
Name: "Arduino AVR Boards",
200209
Maintainer: "Arduino",
201210
Website: "https://www.arduino.cc/",
202211
Email: "packages@arduino.cc",
203-
Boards: []*commands.Board{
212+
Boards: []*rpc.Board{
204213
{Name: "Arduino Yún"},
205214
{Name: "Arduino Uno"},
206215
{Name: "Arduino Uno WiFi"},
@@ -230,23 +239,23 @@ func TestPlatformSearch(t *testing.T) {
230239
},
231240
})
232241

233-
res, stat = PlatformSearch(&rpc.PlatformSearchRequest{
234-
Instance: inst,
242+
res, err = PlatformSearch(&rpc.PlatformSearchRequest{
243+
Instance: inst.ToRPC(),
235244
SearchArgs: "yun",
236245
AllVersions: true,
237246
})
238-
require.Nil(t, stat)
247+
require.Nil(t, err)
239248
require.NotNil(t, res)
240249
require.Len(t, res.SearchOutput, 1)
241-
require.Contains(t, res.SearchOutput, &commands.Platform{
250+
require.Contains(t, res.SearchOutput, &rpc.Platform{
242251
Id: "arduino:avr",
243252
Installed: "",
244253
Latest: "1.8.3",
245254
Name: "Arduino AVR Boards",
246255
Maintainer: "Arduino",
247256
Website: "https://www.arduino.cc/",
248257
Email: "packages@arduino.cc",
249-
Boards: []*commands.Board{
258+
Boards: []*rpc.Board{
250259
{Name: "Arduino Yún"},
251260
{Name: "Arduino Uno"},
252261
{Name: "Arduino Uno WiFi"},
@@ -278,23 +287,33 @@ func TestPlatformSearch(t *testing.T) {
278287
}
279288

280289
func TestPlatformSearchSorting(t *testing.T) {
281-
dataDir := paths.TempDir().Join("test", "data_dir")
282-
downloadDir := paths.TempDir().Join("test", "staging")
290+
testDir := paths.TempDir().Join("test", t.Name())
291+
dataDir := testDir.Join("data_dir")
292+
downloadDir := testDir.Join("staging")
283293
os.Setenv("ARDUINO_DATA_DIR", dataDir.String())
284294
os.Setenv("ARDUINO_DOWNLOADS_DIR", downloadDir.String())
285295
dataDir.MkdirAll()
286296
downloadDir.MkdirAll()
287-
defer paths.TempDir().Join("test").RemoveAll()
297+
defer testDir.RemoveAll()
288298
err := paths.New("testdata").Join("package_index.json").CopyTo(dataDir.Join("package_index.json"))
289299
require.Nil(t, err)
290300

291-
configuration.Settings = configuration.Init(paths.TempDir().Join("test", "arduino-cli.yaml").String())
292-
293-
inst := instance.CreateAndInit()
301+
createRes, err := commands.Create(&rpc.CreateRequest{
302+
ConfigFile: testDir.Join("arduino-cli.yaml").String(),
303+
})
304+
require.NoError(t, err)
305+
inst := commands.GetInstance(createRes.Instance.Id)
294306
require.NotNil(t, inst)
307+
config, err := httpclient.ConfigFromSettings(inst.Settings)
308+
require.NoError(t, err)
309+
httpclient.Init(config)
310+
commands.Init(&rpc.InitRequest{
311+
Instance: inst.ToRPC(),
312+
}, nil)
313+
defer commands.Destroy(context.Background(), &rpc.DestroyRequest{Instance: inst.ToRPC()})
295314

296315
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
297-
Instance: inst,
316+
Instance: inst.ToRPC(),
298317
SearchArgs: "",
299318
AllVersions: false,
300319
})

configuration/configuration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func TestFindConfigFile(t *testing.T) {
109109
require.Equal(t, "some/path/to/config/arduino-cli.yaml", configFile)
110110

111111
configFile = FindConfigFileInArgsOrWorkingDirectory([]string{})
112-
require.Equal(t, "", configFile)
112+
require.NotEqual(t, "", configFile)
113113

114114
// Create temporary directories
115115
tmp := tmpDirOrDie()

0 commit comments

Comments
 (0)