Exemplo n.º 1
0
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')