func (fix *SimpleToolsFixture) SetUp(c *gc.C, dataDir string) { fix.dataDir = dataDir fix.logDir = c.MkDir() current := version.Binary{ Number: version.Current, Arch: arch.HostArch(), Series: series.HostSeries(), } toolsDir := tools.SharedToolsDir(fix.dataDir, current) err := os.MkdirAll(toolsDir, 0755) c.Assert(err, jc.ErrorIsNil) jujudPath := filepath.Join(toolsDir, "jujud") err = ioutil.WriteFile(jujudPath, []byte(fakeJujud), 0755) c.Assert(err, jc.ErrorIsNil) toolsPath := filepath.Join(toolsDir, "downloaded-tools.txt") testTools := coretools.Tools{Version: current, URL: "http://testing.invalid/tools"} data, err := json.Marshal(testTools) c.Assert(err, jc.ErrorIsNil) err = ioutil.WriteFile(toolsPath, data, 0644) c.Assert(err, jc.ErrorIsNil) fix.binDir = c.MkDir() fix.origPath = os.Getenv("PATH") os.Setenv("PATH", fix.binDir+":"+fix.origPath) fix.makeBin(c, "status", `echo "blah stop/waiting"`) fix.makeBin(c, "stopped-status", `echo "blah stop/waiting"`) fix.makeBin(c, "started-status", `echo "blah start/running, process 666"`) fix.makeBin(c, "start", "cp $(which started-status) $(which status)") fix.makeBin(c, "stop", "cp $(which stopped-status) $(which status)") fix.data = svctesting.NewFakeServiceData() }
func (s *MongoSuite) SetUpTest(c *gc.C) { s.BaseSuite.SetUpTest(c) s.mongodVersion = mongo.Mongo24 testing.PatchExecutable(c, s, "mongod", "#!/bin/bash\n\nprintf %s 'db version v2.4.9'\n") jujuMongodPath, err := exec.LookPath("mongod") c.Assert(err, jc.ErrorIsNil) s.PatchValue(&mongo.JujuMongod24Path, jujuMongodPath) s.mongodPath = jujuMongodPath // Patch "df" such that it always reports there's 1MB free. s.PatchValue(mongo.AvailSpace, func(dir string) (float64, error) { info, err := os.Stat(dir) if err != nil { return 0, err } if info.IsDir() { return 1, nil } return 0, fmt.Errorf("not a directory") }) s.PatchValue(mongo.MinOplogSizeMB, 1) testPath := c.MkDir() s.mongodConfigPath = filepath.Join(testPath, "mongodConfig") s.PatchValue(mongo.MongoConfigPath, s.mongodConfigPath) s.data = svctesting.NewFakeServiceData() mongo.PatchService(s.PatchValue, s.data) }
func (s *MongoSuite) SetUpTest(c *gc.C) { s.BaseSuite.SetUpTest(c) // Try to make sure we don't execute any commands accidentally. s.PatchEnvironment("PATH", "") s.mongodPath = filepath.Join(c.MkDir(), "mongod") err := ioutil.WriteFile(s.mongodPath, []byte("#!/bin/bash\n\nprintf %s 'db version v2.4.9'\n"), 0755) c.Assert(err, jc.ErrorIsNil) s.PatchValue(&mongo.JujuMongodPath, s.mongodPath) // Patch "df" such that it always reports there's 1MB free. s.PatchValue(mongo.AvailSpace, func(dir string) (float64, error) { info, err := os.Stat(dir) if err != nil { return 0, err } if info.IsDir() { return 1, nil } return 0, fmt.Errorf("not a directory") }) s.PatchValue(mongo.MinOplogSizeMB, 1) testPath := c.MkDir() s.mongodConfigPath = filepath.Join(testPath, "mongodConfig") s.PatchValue(mongo.MongoConfigPath, s.mongodConfigPath) s.data = svctesting.NewFakeServiceData() mongo.PatchService(s.PatchValue, s.data) }
func (s *localJujuTestSuite) SetUpTest(c *gc.C) { s.baseProviderSuite.SetUpTest(c) s.PatchValue(&version.Current, testing.FakeVersionNumber) s.PatchValue(&arch.HostArch, func() string { return arch.AMD64 }) s.PatchValue(&series.HostSeries, func() string { return testing.FakeDefaultSeries }) // Construct the directories first. err := local.CreateDirs(c, minimalConfig(c)) c.Assert(err, jc.ErrorIsNil) s.testPath = c.MkDir() s.fakesudo = filepath.Join(s.testPath, "sudo") s.PatchEnvPathPrepend(s.testPath) s.PatchValue(&lxc.TemplateLockDir, c.MkDir()) s.PatchValue(&lxc.TemplateStopTimeout, 500*time.Millisecond) // Write a fake "sudo" which records its args to sudo.args. err = ioutil.WriteFile(s.fakesudo, []byte(echoCommandScript), 0755) c.Assert(err, jc.ErrorIsNil) // Add in an admin secret s.Tests.TestConfig["admin-secret"] = "sekrit" s.PatchValue(local.CheckIfRoot, func() bool { return false }) s.Tests.SetUpTest(c) s.PatchValue(local.ExecuteCloudConfig, func(environs.BootstrapContext, *instancecfg.InstanceConfig, cloudinit.CloudConfig) error { return nil }) s.svcData = svctesting.NewFakeServiceData() local.PatchServices(s.PatchValue, s.svcData) }
func (s *serviceSuite) TestIsServiceInstalledWhenNotInstalled(c *gc.C) { mongo.PatchService(s.PatchValue, svctesting.NewFakeServiceData()) isInstalled, err := mongo.IsServiceInstalled("some-namespace") c.Assert(err, jc.ErrorIsNil) c.Assert(isInstalled, jc.IsFalse) }
func (s *serviceSuite) TestIsServiceInstalledWhenInstalled(c *gc.C) { svcName := mongo.ServiceName svcData := svctesting.NewFakeServiceData(svcName) mongo.PatchService(s.PatchValue, svcData) isInstalled, err := mongo.IsServiceInstalled() c.Assert(err, jc.ErrorIsNil) c.Assert(isInstalled, jc.IsTrue) }
func (s *adminSuite) SetUpTest(c *gc.C) { s.BaseSuite.SetUpTest(c) s.data = svctesting.NewFakeServiceData() mongo.PatchService(s.PatchValue, s.data) }