1
// Copyright 2012, 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
gc "launchpad.net/gocheck"
11
"launchpad.net/juju-core/environs/config"
12
"launchpad.net/juju-core/environs/simplestreams"
13
coretesting "launchpad.net/juju-core/testing"
16
type ValidateSuite struct {
17
home *coretesting.FakeHome
18
oldClient *http.Client
21
var _ = gc.Suite(&ValidateSuite{})
23
func (s *ValidateSuite) makeLocalMetadata(c *gc.C, version, region, series, endpoint string) error {
28
Path: "/tools/tools.tar.gz",
31
Hash: "f65a92b3b41311bdf398663ee1c5cd0c",
33
cloudSpec := simplestreams.CloudSpec{
37
_, err := MakeBoilerplate("", series, &tm, &cloudSpec, false)
42
t := &http.Transport{}
43
t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
44
s.oldClient = simplestreams.SetHttpClient(&http.Client{Transport: t})
48
func (s *ValidateSuite) SetUpTest(c *gc.C) {
49
s.home = coretesting.MakeEmptyFakeHome(c)
52
func (s *ValidateSuite) TearDownTest(c *gc.C) {
54
if s.oldClient != nil {
55
simplestreams.SetHttpClient(s.oldClient)
59
func (s *ValidateSuite) TestMatch(c *gc.C) {
60
s.makeLocalMetadata(c, "1.11.2", "region-2", "raring", "some-auth-url")
61
metadataDir := config.JujuHomePath("")
62
params := &MetadataLookupParams{
66
Architectures: []string{"amd64"},
67
Endpoint: "some-auth-url",
68
BaseURLs: []string{"file://" + metadataDir},
70
versions, err := ValidateToolsMetadata(params)
71
c.Assert(err, gc.IsNil)
72
c.Assert(versions, gc.DeepEquals, []string{"1.11.2-raring-amd64"})
75
func (s *ValidateSuite) TestNoMatch(c *gc.C) {
76
s.makeLocalMetadata(c, "1.11.2", "region-2", "raring", "some-auth-url")
77
metadataDir := config.JujuHomePath("")
78
params := &MetadataLookupParams{
82
Architectures: []string{"amd64"},
83
Endpoint: "some-auth-url",
84
BaseURLs: []string{"file://" + metadataDir},
86
_, err := ValidateToolsMetadata(params)
87
c.Assert(err, gc.Not(gc.IsNil))