// Reset resets the entire dummy environment and forgets any registered // operation listener. All opened environments after Reset will share // the same underlying state. func Reset() { log.Printf("environs/dummy: reset environment") p := &providerInstance p.mu.Lock() defer p.mu.Unlock() for _, s := range p.state { s.httpListener.Close() } providerInstance.ops = discardOperations providerInstance.state = make(map[string]*environState) if testing.MgoAddr != "" { testing.MgoReset() } }
func (e *environ) Destroy([]environs.Instance) error { defer delay() if err := e.checkBroken("Destroy"); err != nil { return err } e.state.mu.Lock() defer e.state.mu.Unlock() e.state.ops <- OpDestroy{Env: e.state.name} if testing.MgoAddr != "" { testing.MgoReset() } e.state.bootstrapped = false e.state.storage.files = make(map[string][]byte) return nil }
func (state *environState) destroy() { state.storage.files = make(map[string][]byte) if !state.bootstrapped { return } if state.apiServer != nil { if err := state.apiServer.Stop(); err != nil { panic(err) } state.apiServer = nil if err := state.apiState.Close(); err != nil { panic(err) } state.apiState = nil } if testing.MgoAddr != "" { testing.MgoReset() } state.bootstrapped = false }
func (s *mgoSuite) TestMgoStartAndClean(c *C) { c.Assert(testing.MgoAddr, Not(Equals), "") session := testing.MgoDial() defer session.Close() menu := session.DB("food").C("menu") err := menu.Insert( bson.D{{"spam", "lots"}}, bson.D{{"eggs", "fried"}}, ) c.Assert(err, IsNil) food := make([]map[string]string, 0) err = menu.Find(nil).All(&food) c.Assert(err, IsNil) c.Assert(food, HasLen, 2) c.Assert(food[0]["spam"], Equals, "lots") c.Assert(food[1]["eggs"], Equals, "fried") testing.MgoReset() morefood := make([]map[string]string, 0) err = menu.Find(nil).All(&morefood) c.Assert(err, IsNil) c.Assert(morefood, HasLen, 0) }