~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/apiserver/common/tools_test.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
        jc "github.com/juju/testing/checkers"
12
12
        "github.com/juju/utils/arch"
13
13
        "github.com/juju/utils/series"
 
14
        "github.com/juju/version"
14
15
        gc "gopkg.in/check.v1"
15
16
 
16
17
        "github.com/juju/juju/apiserver/common"
20
21
        "github.com/juju/juju/juju/testing"
21
22
        "github.com/juju/juju/network"
22
23
        "github.com/juju/juju/state"
23
 
        "github.com/juju/juju/state/toolstorage"
 
24
        "github.com/juju/juju/state/binarystorage"
24
25
        coretools "github.com/juju/juju/tools"
25
 
        "github.com/juju/juju/version"
 
26
        jujuversion "github.com/juju/juju/version"
26
27
)
27
28
 
28
29
type toolsSuite struct {
33
34
var _ = gc.Suite(&toolsSuite{})
34
35
 
35
36
var current = version.Binary{
36
 
        Number: version.Current,
 
37
        Number: jujuversion.Current,
37
38
        Arch:   arch.HostArch(),
38
39
        Series: series.HostSeries(),
39
40
}
159
160
                        Version: version.MustParseBinary("123.456.1-win81-alpha"),
160
161
                },
161
162
        }
162
 
        storageMetadata := []toolstorage.Metadata{{
163
 
                Version: version.MustParseBinary("123.456.0-win81-alpha"),
 
163
        storageMetadata := []binarystorage.Metadata{{
 
164
                Version: "123.456.0-win81-alpha",
164
165
                Size:    1024,
165
166
                SHA256:  "feedface",
166
167
        }}
184
185
        c.Assert(result.Error, gc.IsNil)
185
186
        c.Assert(result.List, gc.DeepEquals, coretools.List{
186
187
                &coretools.Tools{
187
 
                        Version: storageMetadata[0].Version,
 
188
                        Version: version.MustParseBinary(storageMetadata[0].Version),
188
189
                        Size:    storageMetadata[0].Size,
189
190
                        SHA256:  storageMetadata[0].SHA256,
190
 
                        URL:     "tools:" + storageMetadata[0].Version.String(),
 
191
                        URL:     "tools:" + storageMetadata[0].Version,
191
192
                },
192
193
                envtoolsList[1],
193
194
        })
205
206
 
206
207
func (s *toolsSuite) TestFindToolsExactInStorage(c *gc.C) {
207
208
        mockToolsStorage := &mockToolsStorage{
208
 
                metadata: []toolstorage.Metadata{
209
 
                        {Version: version.MustParseBinary("1.22-beta1-trusty-amd64")},
210
 
                        {Version: version.MustParseBinary("1.22.0-trusty-amd64")},
 
209
                metadata: []binarystorage.Metadata{
 
210
                        {Version: "1.22-beta1-trusty-amd64"},
 
211
                        {Version: "1.22.0-trusty-amd64"},
211
212
                },
212
213
        }
213
214
 
214
215
        s.PatchValue(&arch.HostArch, func() string { return arch.AMD64 })
215
216
        s.PatchValue(&series.HostSeries, func() string { return "trusty" })
216
 
        s.PatchValue(&version.Current, version.MustParseBinary("1.22-beta1-trusty-amd64").Number)
 
217
        s.PatchValue(&jujuversion.Current, version.MustParseBinary("1.22-beta1-trusty-amd64").Number)
217
218
        s.testFindToolsExact(c, mockToolsStorage, true, true)
218
 
        s.PatchValue(&version.Current, version.MustParseBinary("1.22.0-trusty-amd64").Number)
 
219
        s.PatchValue(&jujuversion.Current, version.MustParseBinary("1.22.0-trusty-amd64").Number)
219
220
        s.testFindToolsExact(c, mockToolsStorage, true, false)
220
221
}
221
222
 
222
223
func (s *toolsSuite) TestFindToolsExactNotInStorage(c *gc.C) {
223
224
        mockToolsStorage := &mockToolsStorage{}
224
 
        s.PatchValue(&version.Current, version.MustParse("1.22-beta1"))
 
225
        s.PatchValue(&jujuversion.Current, version.MustParse("1.22-beta1"))
225
226
        s.testFindToolsExact(c, mockToolsStorage, false, true)
226
 
        s.PatchValue(&version.Current, version.MustParse("1.22.0"))
 
227
        s.PatchValue(&jujuversion.Current, version.MustParse("1.22.0"))
227
228
        s.testFindToolsExact(c, mockToolsStorage, false, false)
228
229
}
229
230
 
231
232
        var called bool
232
233
        s.PatchValue(common.EnvtoolsFindTools, func(e environs.Environ, major, minor int, stream string, filter coretools.Filter) (list coretools.List, err error) {
233
234
                called = true
234
 
                c.Assert(filter.Number, gc.Equals, version.Current)
 
235
                c.Assert(filter.Number, gc.Equals, jujuversion.Current)
235
236
                c.Assert(filter.Series, gc.Equals, series.HostSeries())
236
237
                c.Assert(filter.Arch, gc.Equals, arch.HostArch())
237
238
                if develVersion {
243
244
        })
244
245
        toolsFinder := common.NewToolsFinder(s.State, t, sprintfURLGetter("tools:%s"))
245
246
        result, err := toolsFinder.FindTools(params.FindToolsParams{
246
 
                Number:       version.Current,
 
247
                Number:       jujuversion.Current,
247
248
                MajorVersion: -1,
248
249
                MinorVersion: -1,
249
250
                Series:       series.HostSeries(),
319
320
}
320
321
 
321
322
type mockToolsStorage struct {
322
 
        toolstorage.Storage
323
 
        metadata []toolstorage.Metadata
 
323
        binarystorage.Storage
 
324
        metadata []binarystorage.Metadata
324
325
        err      error
325
326
}
326
327
 
327
 
func (s *mockToolsStorage) ToolsStorage() (toolstorage.StorageCloser, error) {
 
328
func (s *mockToolsStorage) ToolsStorage() (binarystorage.StorageCloser, error) {
328
329
        return s, nil
329
330
}
330
331
 
332
333
        return nil
333
334
}
334
335
 
335
 
func (s *mockToolsStorage) AllMetadata() ([]toolstorage.Metadata, error) {
 
336
func (s *mockToolsStorage) AllMetadata() ([]binarystorage.Metadata, error) {
336
337
        return s.metadata, s.err
337
338
}