def test_generator_com(self): """Test the generation in C.E.""" host = Host(conf.hostsConf, "dummy.xml", "testserver1", "192.168.1.1", "Servers") testfactory = TestFactory(confdir=os.path.join(self.tmpdir, "conf")) test_list = testfactory.get_test("UpTime", host.classes) host.add_tests(test_list) nagios = Nagios() genmanager = GeneratorManager([nagios]) genmanager.generate(DummyRevMan()) self.assert_(os.path.exists(os.path.join(self.basedir, "localhost", "nagios", "nagios.cfg")))
def setUp(self): setup_db() conf.hostsConf = {} # Prepare temporary directory self.tmpdir = setup_tmpdir() self.basedir = os.path.join(self.tmpdir, "deploy") self.old_conf_path = settings["vigiconf"]["confdir"] settings["vigiconf"]["confdir"] = os.path.join(self.tmpdir, "conf.d") os.mkdir(settings["vigiconf"]["confdir"]) self.testfactory = TestFactory(confdir=settings["vigiconf"]["confdir"]) self.host = Host(conf.hostsConf, "dummy.xml", "testserver1", "192.168.1.1", "Servers") self.host.set_attribute("collectorTimeout", "3") # attention, le fichier dummy.xml doit exister ou l'hôte sera supprimé # juste après avoir été inséré open(os.path.join(self.tmpdir, "conf.d", "dummy.xml"), "w").close() conffile = ConfFile.get_or_create("dummy.xml") add_host("testserver1", conffile) self.apps = self._get_apps() self.genmanager = GeneratorManager(self.apps.values()) self.substitutions = { 'nagios_bin': 'nagios', 'nagios_init': '/etc/init.d/nagios', 'targetconfdir': '/etc/vigilo/vigiconf/', 'nagios_cfg': '/etc/nagios/nagios.cfg', }
class GeneratorBaseTestCase(TestCase): """Classe de base pour les tests de génération""" def setUp(self): setup_db() conf.hostsConf = {} # Prepare temporary directory self.tmpdir = setup_tmpdir() self.basedir = os.path.join(self.tmpdir, "deploy") self.old_conf_path = settings["vigiconf"]["confdir"] settings["vigiconf"]["confdir"] = os.path.join(self.tmpdir, "conf.d") os.mkdir(settings["vigiconf"]["confdir"]) self.testfactory = TestFactory(confdir=settings["vigiconf"]["confdir"]) self.host = Host(conf.hostsConf, "dummy.xml", "testserver1", "192.168.1.1", "Servers") self.host.set_attribute("collectorTimeout", "3") # attention, le fichier dummy.xml doit exister ou l'hôte sera supprimé # juste après avoir été inséré open(os.path.join(self.tmpdir, "conf.d", "dummy.xml"), "w").close() conffile = ConfFile.get_or_create("dummy.xml") add_host("testserver1", conffile) self.apps = self._get_apps() self.genmanager = GeneratorManager(self.apps.values()) self.substitutions = { 'nagios_bin': 'nagios', 'nagios_init': '/etc/init.d/nagios', 'targetconfdir': '/etc/vigilo/vigiconf/', 'nagios_cfg': '/etc/nagios/nagios.cfg', } def tearDown(self): DBSession.expunge_all() teardown_db() shutil.rmtree(self.tmpdir) settings["vigiconf"]["confdir"] = self.old_conf_path conf.hostsConf = {} def _get_apps(self): """ Dictionnaire des instances d'applications à tester. Exemple: {"nagios": Nagios(), "vigimap": VigiMap()} """ return {} def _generate(self): self.genmanager.generate(DummyRevMan()) def _validate(self): deploydir = os.path.join(self.basedir, "localhost") for appname, app in self.apps.iteritems(): __import__(app.__module__) module = sys.modules[app.__module__] validation_script = os.path.join( os.path.dirname(module.__file__), "validate.sh") fh = open(validation_script, 'r') contents = fh.read() fh.close() contents = contents % { } validation_script = os.path.join(self.tmpdir, "validate.sh") fh = open(validation_script, 'w') fh.write(contents % self.substitutions) fh.close() print appname proc = Popen(["sh", validation_script, deploydir], stdout=PIPE, stderr=STDOUT) print proc.communicate()[0] self.assertEqual(proc.returncode, 0)