~niemeyer/pyjuju/go-store

« back to all changes in this revision

Viewing changes to charm/meta_test.go

  • Committer: Gustavo Niemeyer
  • Date: 2011-09-24 15:21:23 UTC
  • Revision ID: gustavo@niemeyer.net-20110924152123-aytdvquwlbmnv3tj
Applied the juju/charm renaming to the Go code base.

Dropped need for the silly "header" field in metadata.yaml.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package formula_test
 
1
package charm_test
2
2
 
3
3
import (
4
4
        "bytes"
5
5
        "io"
6
6
        "io/ioutil"
7
7
        . "launchpad.net/gocheck"
8
 
        "launchpad.net/ensemble/go/formula"
9
 
        "launchpad.net/ensemble/go/schema"
 
8
        "launchpad.net/juju/go/charm"
 
9
        "launchpad.net/juju/go/schema"
10
10
        "os"
11
11
        "path/filepath"
12
12
)
26
26
}
27
27
 
28
28
func (s *S) TestReadMeta(c *C) {
29
 
        meta, err := formula.ReadMeta(repoMeta("dummy"))
 
29
        meta, err := charm.ReadMeta(repoMeta("dummy"))
30
30
        c.Assert(err, IsNil)
31
31
        c.Assert(meta.Name, Equals, "dummy")
32
32
        c.Assert(meta.Revision, Equals, 1)
33
 
        c.Assert(meta.Summary, Equals, "That's a dummy formula.")
 
33
        c.Assert(meta.Summary, Equals, "That's a dummy charm.")
34
34
        c.Assert(meta.Description, Equals,
35
35
                "This is a longer description which\npotentially contains multiple lines.\n")
36
36
}
37
37
 
38
 
func (s *S) TestMetaHeader(c *C) {
39
 
        yaml := ReadYaml(repoMeta("dummy"))
40
 
        yaml["ensemble"] = "foo"
41
 
        _, err := formula.ReadMeta(yaml.Reader())
42
 
        c.Assert(err, Matches, `metadata: ensemble: expected "formula", got "foo"`)
43
 
}
44
 
 
45
38
func (s *S) TestParseMetaRelations(c *C) {
46
 
        meta, err := formula.ReadMeta(repoMeta("mysql"))
 
39
        meta, err := charm.ReadMeta(repoMeta("mysql"))
47
40
        c.Assert(err, IsNil)
48
 
        c.Assert(meta.Provides["server"], Equals, formula.Relation{Interface: "mysql"})
 
41
        c.Assert(meta.Provides["server"], Equals, charm.Relation{Interface: "mysql"})
49
42
        c.Assert(meta.Requires, IsNil)
50
43
        c.Assert(meta.Peers, IsNil)
51
44
 
52
 
        meta, err = formula.ReadMeta(repoMeta("riak"))
 
45
        meta, err = charm.ReadMeta(repoMeta("riak"))
53
46
        c.Assert(err, IsNil)
54
 
        c.Assert(meta.Provides["endpoint"], Equals, formula.Relation{Interface: "http"})
55
 
        c.Assert(meta.Provides["admin"], Equals, formula.Relation{Interface: "http"})
56
 
        c.Assert(meta.Peers["ring"], Equals, formula.Relation{Interface: "riak", Limit: 1})
 
47
        c.Assert(meta.Provides["endpoint"], Equals, charm.Relation{Interface: "http"})
 
48
        c.Assert(meta.Provides["admin"], Equals, charm.Relation{Interface: "http"})
 
49
        c.Assert(meta.Peers["ring"], Equals, charm.Relation{Interface: "riak", Limit: 1})
57
50
        c.Assert(meta.Requires, IsNil)
58
51
 
59
 
        meta, err = formula.ReadMeta(repoMeta("wordpress"))
 
52
        meta, err = charm.ReadMeta(repoMeta("wordpress"))
60
53
        c.Assert(err, IsNil)
61
 
        c.Assert(meta.Provides["url"], Equals, formula.Relation{Interface: "http"})
62
 
        c.Assert(meta.Requires["db"], Equals, formula.Relation{Interface: "mysql", Limit: 1})
63
 
        c.Assert(meta.Requires["cache"], Equals, formula.Relation{Interface: "varnish", Limit: 2, Optional: true})
 
54
        c.Assert(meta.Provides["url"], Equals, charm.Relation{Interface: "http"})
 
55
        c.Assert(meta.Requires["db"], Equals, charm.Relation{Interface: "mysql", Limit: 1})
 
56
        c.Assert(meta.Requires["cache"], Equals, charm.Relation{Interface: "varnish", Limit: 2, Optional: true})
64
57
        c.Assert(meta.Peers, IsNil)
65
58
 
66
59
}
76
69
// with ensuring the conversion object properly raises SchemaError
77
70
// exceptions on invalid data.
78
71
func (s *S) TestIfaceExpander(c *C) {
79
 
        e := formula.IfaceExpander(nil)
 
72
        e := charm.IfaceExpander(nil)
80
73
 
81
74
        path := []string{"<pa", "th>"}
82
75
 
109
102
        c.Assert(err, Matches, "<path>.limit: unsupported value")
110
103
 
111
104
        // Can change default limit
112
 
        e = formula.IfaceExpander(1)
 
105
        e = charm.IfaceExpander(1)
113
106
        v, err = e.Coerce(schema.MapType{"interface": "http"}, path)
114
107
        c.Assert(err, IsNil)
115
108
        c.Assert(v, Equals, schema.MapType{"interface": "http", "limit": int64(1), "optional": false})