def test_set_config_dict(self): foo = ConfigMapper('/tmp') foo.set_config(DEFAULT_CONFIG) db = dbdict('/tmp/guachi.db') actual = db.get_all() expected = DEFAULT_CONFIG self.assertEqual(actual, expected)
def test_set_default_options(self): foo = ConfigMapper('/tmp') my_config = {'db_port':1234} foo.set_default_options(my_config) db = dbdict(path='/tmp/guachi.db', table='_guachi_defaults') expected = my_config actual = db.get_all() self.assertEqual(actual, expected)
def test_set_config_dict_empty(self): """Pass an empty dict and get defaults back""" foo = ConfigMapper('/tmp') foo.set_config({}) db = dbdict('/tmp/guachi.db') actual = db.get_all() expected ={} self.assertEqual(actual, expected)
def test_get_default_options(self): foo = ConfigMapper('/tmp') my_config = {'db_port':1234} foo.set_default_options(my_config) defaults = foo.get_default_options() actual = defaults['db_port'] expected = 1234 self.assertEqual(actual, expected)
def test_get_ini_options(self): foo = ConfigMapper('/tmp') my_config = {'config.db.port':'db_port'} foo.set_ini_options(my_config) defaults = foo.get_ini_options() actual = defaults['config.db.port'] expected = 'db_port' self.assertEqual(actual, expected)
def test_add_config(self): """Add a configuration file to the config db""" commands = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db'), db_file='/tmp/pacha_test/pacha_test.db') sys.stdout = MockSys() commands.add_config('/non/existent/path') conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() self.assertEqual(db_conf['path'], '/non/existent/path') self.assertEqual(sys.stdout.captured(), 'Configuration file added: /non/existent/path')
def test_check_config_gone(self): """Set a path that is not reachablei and get an error message""" commands = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db')) commands.add_config('/non/existent/path') conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() # force a config push/parse: for k,v in config.DEFAULT_MAPPINGS.items(): db_conf[k] = v self.assertEqual(len(conf.stored_config().items()), 13) sys.stdout = MockSys() commands.check_config() actual = sys.stdout.captured() expected = CONFIG_GONE self.assertEqual(actual, expected)
def test_config_values_config_error(self): """Show an error message when we have an exception""" f = open('/tmp/pacha_test/pacha_test.conf', 'w') f.write('') f.close() commands = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db')) conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() db_conf['path'] = '/tmp/pacha_test/pacha_test.db' os.remove('/tmp/pacha_test/pacha_test.db') sys.stdout = MockSys() commands.config_values() stdout = sys.stdout.captured() actual = stdout expected = """Could not complete command "key \'path\' not found in persistent dictionary"\n""" self.assertEqual(actual, expected)
def test_config_values(self): """Print out the configuration values we set""" f = open('/tmp/pacha_test/pacha_test.conf', 'w') f.write('') f.close() commands = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db')) conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() # force a config push/parse: for k,v in config.DEFAULT_MAPPINGS.items(): db_conf[k] = v commands.add_config('/tmp/pacha_test/pacha_test.conf') sys.stdout = MockSys() commands.config_values() actual = sys.stdout.captured() expected = u'\nConfiguration file: /tmp/pacha_test/pacha_test.conf\n\nlog_path = False\nlog_enable = False\nhosts_path = /opt/pacha\nhost = localhost\nfrequency = 60 \npath = /tmp/pacha_test/pacha_test.conf\nlog_datefmt = %H:%M:%S\nlog_level = DEBUG\nhg_autocorrect = True\nssh_port = 22 \nmaster = False\nssh_user = root\nlog_format = %(asctime)s %(levelname)s %(name)s %(message)s\n\n' self.assertEqual(actual, expected)
def test_config_values_config_gone(self): """When the config is gone show the config_gone message""" cmd = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db')) conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() # force a config push/parse: for k,v in config.DEFAULT_MAPPINGS.items(): db_conf[k] = v sys.stdout = MockSys() cmd.check_config() cmd.config_values() stdout = sys.stdout.captured() message = "The config file supplied does not exist" warning_message = False if message in stdout: warning_message = True self.assertTrue(warning_message)
def test_daemon_start(self): """Start the daemon via the command line""" cmd = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db')) cmd.add_config('/tmp/pacha_test/pacha.conf') cmd.check_config() conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() db_conf['log_path'] = '/tmp/pacha_test' db_conf['log_enable'] = False db_conf['log_level'] = 'CRITICAL' db_conf['log_format'] = 'H%' db_conf['log_datefmt'] = 'X' cmd.config = db_conf sys.stdout = MockSys() cmd.parseArgs(['pacha', '--daemon-stop']) actual = sys.stdout.captured() expected = '\nPID file not found. Process may not be running.\n\n' self.assertEqual(actual, expected)
def test_parse_add_config(self): """Add a configuration file to the config db when called via CLI""" commands = pacha.PachaCommands(test=True, parse=False, db=ConfigMapper('/tmp/pacha_test/pacha_test.db')) conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() db_conf['log_path'] = '/tmp/pacha_test' db_conf['log_enable'] = False db_conf['log_level'] = 'CRITICAL' db_conf['log_format'] = 'H%' db_conf['log_datefmt'] = 'X' sys.stdout = MockSys() commands.parseArgs(argv=['pacha', '--add-config', '/non/existent/path']) conf = ConfigMapper('/tmp/pacha_test/pacha_test.db') db_conf = conf.stored_config() message = False if 'Configuration file added: /non/existent/path' in sys.stdout.captured(): message = True self.assertEqual(db_conf['path'], '/non/existent/path') self.assertTrue(message)
it "not exists extended commands": assert get_extend_commands() == [] it "can't load the extended commands": assert load_extend_commands("config") == None describe "get extend commands": before all: # Fixes Database Absolute Location file_cwd = os.path.abspath("./") file_dir = os.path.dirname(file_cwd) self.db_file = file_dir+"/tests/test_dozo.db" db = ConfigMapper(self.db_file) self.config = db.stored_config() self.config["path-extend"] = file_dir+"/tests/path_extend" after all: try: os.remove(self.db_file) except: pass # who cares if you can't it "get the list of extended commands": cmds = get_extend_commands(self.config["path-extend"]) assert cmds == ['test_command'] it "load and execute extended test command":
def test_access_mapped_configs_dict(self): foo = ConfigMapper('/tmp/guachi') foo.set_ini_options(self.mapped_options) foo.set_default_options(self.mapped_defaults) foo.set_config({'db_host':'example.com', 'db_port':0}) # try as much operations as we can and assert them self.assertEqual(foo(), {}) self.assertEqual(foo.path, '/tmp/guachi/guachi.db') self.assertEqual(foo.get_ini_options(), {}) self.assertEqual(foo.get_default_options(), {}) self.assertEqual(foo.get_dict_config(), {u'web_port': u'8080', u'web_host': u'localhost', u'db_host': u'example.com', u'db_port': 0}) self.assertEqual(foo.stored_config(), {}) self.assertTrue(foo.integrity_check())
def test_integrity_check(self): foo = ConfigMapper('/tmp') foo.set_config(DEFAULT_CONFIG) actual = foo.integrity_check() self.assertTrue(actual)
def test_get_dict_config(self): foo = ConfigMapper('/tmp') foo.set_config(DEFAULT_CONFIG) actual = foo.get_dict_config() expected = DEFAULT_CONFIG self.assertEqual(actual, expected)
def test_stored(self): foo = ConfigMapper('/tmp') bar = foo.stored_config() self.assertEqual(bar, {})
def test_stored_get_data(self): """Verify we can actually get data by using stored""" foo = ConfigMapper('/tmp') bar = foo.stored_config() bar['a'] = 1 self.assertEqual(bar, {'a':1})
def set_mappings(DB_FILE): """Sets the INI and default mappings in the database""" conf = ConfigMapper(DB_FILE) conf.set_default_options(DEFAULT_MAPPINGS) conf.set_ini_options(INI_MAPPINGS)
def test_path_verify_file(self): foo = ConfigMapper('/tmp/foo_guachi.db') actual = foo._path_verify('/tmp/foo_guachi.db') expected = '/tmp/foo_guachi.db' self.assertEqual(actual, expected)
def test_access_mapped_configs_empty_dict(self): foo = ConfigMapper('/tmp/guachi') foo.set_ini_options(self.mapped_options) foo.set_default_options(self.mapped_defaults) foo.set_config({}) # try as much operations as we can and assert them self.assertEqual(foo(), {}) self.assertEqual(foo.path, '/tmp/guachi/guachi.db') self.assertEqual(foo.get_ini_options(), {}) self.assertEqual(foo.get_default_options(), {}) self.assertEqual(foo.get_dict_config(), self.mapped_defaults) self.assertEqual(foo.stored_config(), {}) self.assertTrue(foo.integrity_check())