11
"gopkg.in/goose.v1/identity"
12
"gopkg.in/goose.v1/testservices/openstackservice"
15
func registerLocalTests(authMode identity.AuthMode) {
16
lt := LiveTests{authMode: authMode}
17
gc.Suite(&localLiveSuite{LiveTests: lt})
20
// localLiveSuite runs tests from LiveTests using a fake
21
// nova server that runs within the test process itself.
22
type localLiveSuite struct {
24
// The following attributes are for using testing doubles.
25
Server *httptest.Server
27
oldHandler http.Handler
30
func (s *localLiveSuite) SetUpSuite(c *gc.C) {
31
c.Logf("Using identity and nova service test doubles")
33
// Set up the HTTP server.
34
s.Server = httptest.NewServer(nil)
35
s.oldHandler = s.Server.Config.Handler
36
s.Mux = http.NewServeMux()
37
s.Server.Config.Handler = s.Mux
39
serverURL := s.Server.URL
40
if s.authMode == identity.AuthUserPassV3 {
41
serverURL = serverURL + "/v3"
43
// Set up an Openstack service.
44
s.cred = &identity.Credentials{
48
Region: "zone1.some region",
50
DomainName: "default",
52
openstack := openstackservice.New(s.cred, s.authMode)
53
openstack.SetupHTTP(s.Mux)
55
openstack.Identity.AddUser("fred", "secret", "tenant")
56
s.LiveTests.SetUpSuite(c)
59
func (s *localLiveSuite) TearDownSuite(c *gc.C) {
60
s.LiveTests.TearDownSuite(c)
62
s.Server.Config.Handler = s.oldHandler
66
func (s *localLiveSuite) SetUpTest(c *gc.C) {
67
s.LiveTests.SetUpTest(c)
70
func (s *localLiveSuite) TearDownTest(c *gc.C) {
71
s.LiveTests.TearDownTest(c)
74
// Additional tests to be run against the service double only go here.
76
func (s *localLiveSuite) TestProductStreamsEndpoint(c *gc.C) {
77
err := s.client.Authenticate()
78
c.Assert(err, gc.IsNil)
79
serviceURL, err := s.client.MakeServiceURL("product-streams", nil)
80
c.Assert(err, gc.IsNil)
81
_, err = url.Parse(serviceURL)
82
c.Assert(err, gc.IsNil)
83
c.Assert(strings.HasSuffix(serviceURL, "/imagemetadata"), gc.Equals, true)
86
func (s *localLiveSuite) TestJujuToolsEndpoint(c *gc.C) {
87
err := s.client.Authenticate()
88
c.Assert(err, gc.IsNil)
89
serviceURL, err := s.client.MakeServiceURL("juju-tools", nil)
90
c.Assert(err, gc.IsNil)
91
_, err = url.Parse(serviceURL)
92
c.Assert(err, gc.IsNil)