class SpecificationTestCase(unittest.TestCase): def setUp(self): self.x = ExtendedConfigParser(config='dev') self.x.read('./test_cfg.ini') def test_get_config_name(self): self.assertEqual(self.x.get_config_name(), 'dev') def test_specification_basic_unspeced_key(self): self.assertEqual(self.x.get('sect2', 'key1'), 'val1_sect2') def test_specification_basic(self): self.assertEqual(self.x.get('sect1', 'key1'), 'dev1') def test_specification_goto_parent_config(self): self.x.set_config_name('dev_stuff') self.assertEqual(self.x.get('sect1', 'key1'), 'dev1') def test_specification_goto_grandparent(self): self.x.set_config_name('dev_dem_der') self.assertEqual(self.x.get('sect1', 'key1'), 'dev1') def test_get_configs(self): self.x.set_config_name('dev_plop_toto') res = ['dev_plop_toto', 'dev_plop', 'dev'] self.assertEqual(self.x.get_configs(), res) def test_get_configs_param(self): res = ['dev_plop_toto', 'dev_plop', 'dev'] self.assertEqual(self.x.get_configs('dev_plop_toto'), res) def test_get_configs_plus(self): self.x.set_config_name('dev_plop_toto') res = ['dev_plop_toto', 'plop_toto', 'toto', 'dev_plop', 'plop', 'dev'] self.assertEqual(self.x.get_configs_plus(), res) def test_get_configs_plus_param(self): res = ['dev_plop_toto', 'plop_toto', 'toto', 'dev_plop', 'plop', 'dev'] self.assertEqual(self.x.get_configs_plus('dev_plop_toto'), res) def test_specification_advanced(self): self.x.set_config_name('dev_plop_toto') self.assertEqual(self.x.get('sect3', 'key3'), 'dev_plop_toto3') def test_get_specified_defaults(self): self.assertEqual(self.x.get('sect3', 'key049'), 'DEFAULT_dev') def test_get_specified_vars(self): self.assertEqual(self.x.get('sect1', 'key1', vars={'key1[dev]': 'deez'} ), 'deez')
class AdvancedTestCase(unittest.TestCase): def setUp(self): self.x = ExtendedConfigParser() self.x.read('./test_cfg.ini') def test_get_not_list(self): res = 'damn;dang;nabbit' self.assertEqual(self.x.get('sect1', 'key_list'), res) def test_get_list(self): res = ['damn', 'dang', 'nabbit'] self.assertEqual(self.x.get('sect1', 'key_list', isList=True), res) def test_get_list_int(self): res = [1, 7, 3] self.assertEqual(self.x.getintlist('sect1', 'key_list_int'), res) def test_get_list_bool(self): res = [True, False, True] self.assertEqual(self.x.getbooleanlist('sect1', 'key_list_bool'), res) def test_get_list_float(self): res = [0.96, 1.73, 6.82] self.assertEqual(self.x.getfloatlist('sect1', 'key_list_float'), res) def test_get_fallback_list(self): # If not found in the section or parents (tests list for defaults, # fallback, father,...) self.assertEqual(self.x.get('sect1', 'key173', fallback='deez', isList=True), ['deez']) def test_get_father(self): self.x = ExtendedConfigParser(defaults={'key4': 'father'}) self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect1', 'key4'), 'father') def test_get_default_over_father(self): self.x = ExtendedConfigParser(defaults={'key049': 'father'}) self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect1', 'key049'), 'DEFAULT') def test_get_config_plus(self): self.x = ExtendedConfigParser(config='mem_plop_toto') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect3', 'key3', cfg_plus=True), 'toto3') def test_get_config_section_loop_basic(self): self.x = ExtendedConfigParser(config='dev_plop_toto') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect1', 'key1', sect_first=False), 'dev_plop_toto1_sect3') def test_get_config_section_loop_default(self): self.x = ExtendedConfigParser(config='dev_plop_toto_stuff') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect1', 'key1', sect_first=False), 'dev_plop_toto1_default') def test_get_config_section_loop_father(self): self.x = ExtendedConfigParser(config='dev_plop_toto_stuff', defaults={'key049[dev_plop]': 'father'}) self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect1', 'key049', sect_first=False), 'father') def test_get_config_section_loop_vars_specified(self): self.x = ExtendedConfigParser(config='dev_plop_toto_stuff') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect1', 'key1', sect_first=False, vars={'key1[dev_plop_toto_stuff]': 'vars'}), 'vars') def test_get_config_section_loop_vars(self): self.x = ExtendedConfigParser(config='mem_plop_toto_stuff') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect2', 'key1', sect_first=False, vars={'key1': 'vars'}), 'vars') def test_get_config_section_loop_vars_unspecified(self): self.x = ExtendedConfigParser() self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect2', 'key1', sect_first=False, vars={'key1': 'vars'}), 'vars') def test_get_config_section_loop_sect_unspecified(self): self.x = ExtendedConfigParser(config='dev_plop') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect2', 'key1', sect_first=False), 'val1_sect2') def test_get_config_section_loop_default_unspecified(self): self.x = ExtendedConfigParser(config='mem_plop') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect2', 'key049', sect_first=False), 'DEFAULT') def test_get_config_section_loop_father_unspecified(self): self.x = ExtendedConfigParser(config='mem_plop', defaults={'key096': 'father'}) self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect2', 'key096', sect_first=False), 'father') def test_get_config_section_loop_fallback(self): self.assertEqual(self.x.get('sect2', 'key173', sect_first=False, fallback='SCP-173'), 'SCP-173') def test_get_config_section_loop_fail(self): self.assertRaises(NoOptionError, self.x.get, 'sect1', 'key682', sect_first=False) def test_get_config_section_loop_config_plus(self): self.x = ExtendedConfigParser(config='mem_plop_toto') self.x.read('./test_cfg.ini') self.assertEqual(self.x.get('sect3', 'key3', sect_first=False, cfg_plus=True), 'toto3') def test_get_config_section_loop_list(self): self.assertEqual(self.x.get('sect2', 'key173', sect_first=False, fallback='SCP-173', isList=True), ['SCP-173']) def test_get_kwargs(self): self.x = ExtendedConfigParser(config='dev', config_separator='#', section_separator='%', list_separator='*', delimiters=':', comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section='THINGY', interpolation=None) self.x.read('./test_cfg_kwargs.ini') self.assertEqual(self.x.get('sect1', 'key2', isList=True), ['dev2', '2ved', '2vedev2']) def test_set_config_separator(self): self.x = ExtendedConfigParser(config='dev#dem#der', section_separator='%', list_separator='*') self.x.read('./test_cfg_kwargs.ini') self.x.set_config_separator('#') self.assertEqual(self.x.get('sect1', 'key1'), 'dev1') def test_set_config_separator_wrong(self): self.x = ExtendedConfigParser(config='dev_dem_der', section_separator='%', list_separator='*') self.x.read('./test_cfg_kwargs.ini') self.x.set_config_separator('#') self.x.set_config_name('dev_dem_der') self.assertEqual(self.x.get('sect1', 'key1'), 'val1') def test_set_section_separator(self): self.x = ExtendedConfigParser(config='', config_separator='#', list_separator='*') self.x.read('./test_cfg_kwargs.ini') self.x.set_section_separator('%') self.assertEqual(self.x.get('sect1', 'key3'), 'val3') def test_set_section_separator_fail(self): self.x = ExtendedConfigParser(config='', config_separator='#', list_separator='*') self.x.read('./test_cfg_kwargs.ini') self.x.set_section_separator('%') self.assertEqual(self.x.get('sect1', 'key3'), 'val3') def test_set_list_separator(self): self.x = ExtendedConfigParser(config='dev', config_separator='#', section_separator='%') self.x.read('./test_cfg_kwargs.ini') self.x.set_list_separator('*') self.assertEqual(self.x.get('sect1', 'key2', isList=True), ['dev2', '2ved', '2vedev2']) def test_set_list_separator_wrong(self): self.x = ExtendedConfigParser(config='dev', config_separator='#', section_separator='%') self.x.read('./test_cfg_kwargs.ini') self.x.set_list_separator('*') self.assertEqual(self.x.get('sect1', 'key_list'), 'damn;dang;nabbit') def test_get_section_name_compact_basic(self): self.assertEqual(self.x.get_section_name_compact('sect2'), 'sect2') def test_get_section_name_compact_parents(self): self.assertEqual(self.x.get_section_name_compact('sect1:sect2:sect3'), 'sect1') def test_get_first_section(self): self.assertEqual(self.x.get_first_section(), 'sect1')