func (s *CharmSuite) SetUpTest(c *gc.C) { s.Server = charmstoretesting.OpenServer(c, s.jcSuite.Session, charmstore.ServerParams{ AuthUsername: "******", AuthPassword: "******", }) urls := []string{ "~who/quantal/mysql-23", "~who/quantal/dummy-24", "~who/quantal/riak-25", "~who/quantal/wordpress-26", "~who/quantal/logging-27", } for _, url := range urls { id := charm.MustParseReference(url) ch := testcharms.Repo.CharmArchive(c.MkDir(), id.Name) s.Server.UploadCharm(c, ch, id, true) } s.jcSuite.PatchValue(&charmrepo.CacheDir, c.MkDir()) // Patch the charm repo initializer function: it is replaced with a charm // store repo pointing to the testing server. s.jcSuite.PatchValue(&charmrevisionupdater.NewCharmStore, func(p charmrepo.NewCharmStoreParams) charmrepo.Interface { p.URL = s.Server.URL() return charmrepo.NewCharmStore(p) }) s.charms = make(map[string]*state.Charm) }
func (s *charmVersionSuite) TestEnvironmentUUIDUsed(c *gc.C) { s.AddMachine(c, "0", state.JobManageEnviron) s.SetupScenario(c) // Set up a charm store server that stores the request header. var header http.Header srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { header = r.Header s.Server.Handler().ServeHTTP(w, r) })) defer srv.Close() // Point the charm repo initializer to the testing server. s.PatchValue(&charmrevisionupdater.NewCharmStore, func(p charmrepo.NewCharmStoreParams) charmrepo.Interface { p.URL = srv.URL return charmrepo.NewCharmStore(p) }) result, err := s.charmrevisionupdater.UpdateLatestRevisions() c.Assert(err, jc.ErrorIsNil) c.Assert(result.Error, gc.IsNil) env, err := s.State.Environment() c.Assert(err, jc.ErrorIsNil) c.Assert(header.Get(charmrepo.JujuMetadataHTTPHeader), gc.Equals, "environment_uuid="+env.UUID()) }
func (s *CharmStoreSuite) SetUpTest(c *gc.C) { s.CleanupSuite.SetUpTest(c) s.discharger = bakerytest.NewDischarger(nil, func(_ *http.Request, cond string, arg string) ([]checkers.Caveat, error) { if s.DischargeUser == "" { return nil, fmt.Errorf("discharge denied") } return []checkers.Caveat{ checkers.DeclaredCaveat("username", s.DischargeUser), }, nil }) s.Srv = charmstoretesting.OpenServer(c, s.Session, charmstore.ServerParams{ IdentityLocation: s.discharger.Location(), PublicKeyLocator: s.discharger, }) s.PatchValue(&charmrepo.CacheDir, c.MkDir()) s.PatchValue(&service.NewCharmStore, func(p charmrepo.NewCharmStoreParams) charmrepo.Interface { p.URL = s.Srv.URL() return charmrepo.NewCharmStore(p) }) }