7
7
gc "launchpad.net/gocheck"
9
agenttools "launchpad.net/juju-core/agent/tools"
10
9
"launchpad.net/juju-core/constraints"
11
10
"launchpad.net/juju-core/environs"
12
11
envtesting "launchpad.net/juju-core/environs/testing"
15
14
"launchpad.net/juju-core/provider/dummy"
16
15
"launchpad.net/juju-core/testing"
17
16
jc "launchpad.net/juju-core/testing/checkers"
17
coretools "launchpad.net/juju-core/tools"
18
18
"launchpad.net/juju-core/version"
135
135
info: "private tools only, none matching",
137
137
private: v220all,
138
err: tools.ErrNoMatches,
138
err: coretools.ErrNoMatches,
140
140
info: "tools found in private bucket",
167
167
private := s.uploadPrivate(c, test.private...)
168
168
public := s.uploadPublic(c, test.public...)
169
actual, err := tools.FindTools(s.env, test.major, tools.Filter{})
169
actual, err := tools.FindTools(s.env, test.major, coretools.Filter{})
170
170
if test.err != nil {
171
171
if len(actual) > 0 {
172
172
c.Logf(actual.String())
271
271
available: v220all,
272
272
cliVersion: v100p64,
273
273
defaultSeries: "precise",
274
err: tools.ErrNoMatches,
274
err: coretools.ErrNoMatches,
276
276
info: "released cli: major downgrades bad",
277
277
available: v100Xall,
278
278
cliVersion: v220p64,
279
279
defaultSeries: "precise",
280
err: tools.ErrNoMatches,
280
err: coretools.ErrNoMatches,
282
282
info: "released cli: no matching series",
284
284
cliVersion: v100p64,
285
285
defaultSeries: "raring",
286
err: tools.ErrNoMatches,
286
err: coretools.ErrNoMatches,
288
288
info: "released cli: no matching arches",
290
290
cliVersion: v100p64,
291
291
defaultSeries: "precise",
292
292
constraints: "arch=arm",
293
err: tools.ErrNoMatches,
293
err: coretools.ErrNoMatches,
295
295
info: "released cli: specific bad major 1",
297
297
cliVersion: v220p64,
298
298
agentVersion: v120,
299
299
defaultSeries: "precise",
300
err: tools.ErrNoMatches,
300
err: coretools.ErrNoMatches,
302
302
info: "released cli: specific bad major 2",
304
304
cliVersion: v120p64,
305
305
agentVersion: v220,
306
306
defaultSeries: "precise",
307
err: tools.ErrNoMatches,
307
err: coretools.ErrNoMatches,
309
309
info: "released cli: ignore dev tools 1",
310
310
available: v110all,
311
311
cliVersion: v100p64,
312
312
defaultSeries: "precise",
313
err: tools.ErrNoMatches,
313
err: coretools.ErrNoMatches,
315
315
info: "released cli: ignore dev tools 2",
316
316
available: v110all,
317
317
cliVersion: v120p64,
318
318
defaultSeries: "precise",
319
err: tools.ErrNoMatches,
319
err: coretools.ErrNoMatches,
321
321
info: "released cli: ignore dev tools 3",
322
322
available: []version.Binary{v1001p64},
323
323
cliVersion: v100p64,
324
324
defaultSeries: "precise",
325
err: tools.ErrNoMatches,
325
err: coretools.ErrNoMatches,
327
327
info: "released cli with dev setting picks newest matching 1",
328
328
available: v100Xall,
428
428
available: v100Xall,
429
429
agentVersion: v120,
430
430
series: "precise",
431
err: tools.ErrNoMatches,
431
err: coretools.ErrNoMatches,
433
433
info: "nothing matching 2",
434
434
available: v120all,
435
435
agentVersion: v110,
436
436
series: "precise",
437
err: tools.ErrNoMatches,
437
err: coretools.ErrNoMatches,
439
439
info: "nothing matching 3",
440
440
available: v120q,
441
441
agentVersion: v120,
442
442
series: "precise",
443
err: tools.ErrNoMatches,
443
err: coretools.ErrNoMatches,
445
445
info: "nothing matching 4",
446
446
available: v120q,
447
447
agentVersion: v120,
448
448
series: "quantal",
449
449
constraints: "arch=arm",
450
err: tools.ErrNoMatches,
450
err: coretools.ErrNoMatches,
452
452
info: "actual match 1",
512
512
info: "only non-matches available in private",
513
513
private: append(v110all, v100p32, v100q64, v1001p64),
515
err: tools.ErrNoMatches,
515
err: coretools.ErrNoMatches,
517
517
info: "exact match available in private",
518
518
private: []version.Binary{v100p64},
521
521
info: "only non-matches available in public",
522
522
private: append(v110all, v100p32, v100q64, v1001p64),
524
err: tools.ErrNoMatches,
524
err: coretools.ErrNoMatches,
526
526
info: "exact match available in public",
527
527
public: []version.Binary{v100p64},
559
559
// fakeToolsForSeries fakes a Tools object with just enough information for
560
560
// testing the handling its OS series.
561
func fakeToolsForSeries(series string) *agenttools.Tools {
562
return &agenttools.Tools{Version: version.Binary{Series: series}}
561
func fakeToolsForSeries(series string) *coretools.Tools {
562
return &coretools.Tools{Version: version.Binary{Series: series}}
565
565
// fakeToolsList fakes a tools.List containing Tools objects for the given
566
566
// respective series, in the same number and order.
567
func fakeToolsList(series ...string) tools.List {
567
func fakeToolsList(series ...string) coretools.List {
568
list := coretools.List{}
569
569
for _, name := range series {
570
570
list = append(list, fakeToolsForSeries(name))