~juju-qa/ubuntu/yakkety/juju/juju-1.25.8

« back to all changes in this revision

Viewing changes to src/gopkg.in/goose.v1/glance/glance_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-12-02 17:28:37 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161202172837-jkrbdlyjcxtrii2n
Initial commit of 1.25.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package glance_test
 
2
 
 
3
import (
 
4
        "flag"
 
5
        "testing"
 
6
 
 
7
        gc "gopkg.in/check.v1"
 
8
 
 
9
        "gopkg.in/goose.v1/client"
 
10
        "gopkg.in/goose.v1/glance"
 
11
        "gopkg.in/goose.v1/identity"
 
12
)
 
13
 
 
14
func Test(t *testing.T) { gc.TestingT(t) }
 
15
 
 
16
var live = flag.Bool("live", false, "Include live OpenStack (Canonistack) tests")
 
17
 
 
18
type GlanceSuite struct {
 
19
        glance *glance.Client
 
20
}
 
21
 
 
22
func (s *GlanceSuite) SetUpSuite(c *gc.C) {
 
23
        if !*live {
 
24
                c.Skip("-live not provided")
 
25
        }
 
26
 
 
27
        cred, err := identity.CompleteCredentialsFromEnv()
 
28
        c.Assert(err, gc.IsNil)
 
29
        client := client.NewClient(cred, identity.AuthUserPass, nil)
 
30
        c.Assert(err, gc.IsNil)
 
31
        s.glance = glance.New(client)
 
32
}
 
33
 
 
34
var suite = gc.Suite(&GlanceSuite{})
 
35
 
 
36
func (s *GlanceSuite) TestListImages(c *gc.C) {
 
37
        images, err := s.glance.ListImages()
 
38
        c.Assert(err, gc.IsNil)
 
39
        c.Assert(images, gc.Not(gc.HasLen), 0)
 
40
        for _, ir := range images {
 
41
                c.Assert(ir.Id, gc.Not(gc.Equals), "")
 
42
                c.Assert(ir.Name, gc.Not(gc.Equals), "")
 
43
                for _, l := range ir.Links {
 
44
                        c.Assert(l.Href, gc.Matches, "https?://.*")
 
45
                        c.Assert(l.Rel, gc.Matches, "self|bookmark|alternate")
 
46
                }
 
47
        }
 
48
}
 
49
 
 
50
func (s *GlanceSuite) TestListImagesDetail(c *gc.C) {
 
51
        images, err := s.glance.ListImagesDetail()
 
52
        c.Assert(err, gc.IsNil)
 
53
        c.Assert(images, gc.Not(gc.HasLen), 0)
 
54
        for _, ir := range images {
 
55
                c.Assert(ir.Created, gc.Matches, `\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*`)
 
56
                c.Assert(ir.Updated, gc.Matches, `\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*`)
 
57
                c.Assert(ir.Id, gc.Not(gc.Equals), "")
 
58
                c.Assert(ir.Status, gc.Not(gc.Equals), "")
 
59
                c.Assert(ir.Name, gc.Not(gc.Equals), "")
 
60
                for _, l := range ir.Links {
 
61
                        c.Assert(l.Href, gc.Matches, "https?://.*")
 
62
                        c.Assert(l.Rel, gc.Matches, "self|bookmark|alternate")
 
63
                }
 
64
                m := ir.Metadata
 
65
                c.Assert(m.Architecture, gc.Matches, "i386|x86_64|")
 
66
                c.Assert(m.State, gc.Matches, "active|available|")
 
67
        }
 
68
}
 
69
 
 
70
func (s *GlanceSuite) TestGetImageDetail(c *gc.C) {
 
71
        images, err := s.glance.ListImagesDetail()
 
72
        c.Assert(err, gc.IsNil)
 
73
        firstImage := images[0]
 
74
        ir, err := s.glance.GetImageDetail(firstImage.Id)
 
75
        c.Assert(err, gc.IsNil)
 
76
        c.Assert(ir.Created, gc.Matches, firstImage.Created)
 
77
        c.Assert(ir.Updated, gc.Matches, firstImage.Updated)
 
78
        c.Assert(ir.Name, gc.Equals, firstImage.Name)
 
79
        c.Assert(ir.Status, gc.Equals, firstImage.Status)
 
80
}