Esempio n. 1
0
    def test_component_no_overwrite_parent(self):
        """Values in parent configuration are not overwritten."""
        parent_config = Configuration(self.sitename)
        parent_config.set('compa', 'opt1', 3)
        parent_config.save()
        config = self._read()
        config.set('inherit', 'file', 'trac-site.ini')
        config.save()
        config.parse_if_needed(True)
        config.set_defaults(component='trac.tests.config.CompA')
        config.save()

        expected = [
            '# -*- coding: utf-8 -*-\n',
            '\n',
            '[compa]\n',
            'opt1 = 3\n',
            '\n',
        ]
        self.assertEqual(expected, readlines(self.sitename))

        expected = [
            '# -*- coding: utf-8 -*-\n',
            '\n',
            '[compa]\n',
            'opt2 = a\n',
            '\n',
            '[inherit]\n',
            'file = trac-site.ini\n',
            '\n',
        ]
        self.assertEqual(expected, readlines(self.filename))
Esempio n. 2
0
    def test_set_and_save(self):
        config = self._read()
        config.set('b', u'öption0', 'y')
        config.set(u'aä', 'öption0', 'x')
        config.set('aä', 'option2', "Voilà l'été")  # UTF-8
        config.set(u'aä', 'option1', u"Voilà l'été")  # unicode
        # Note: the following would depend on the locale.getpreferredencoding()
        # config.set('a', 'option3', "Voil\xe0 l'\xe9t\xe9") # latin-1
        self.assertEquals('x', config.get(u'aä', u'öption0'))
        self.assertEquals(u"Voilà l'été", config.get(u'aä', 'option1'))
        self.assertEquals(u"Voilà l'été", config.get(u'aä', 'option2'))
        config.save()

        configfile = open(self.filename, 'r')
        self.assertEquals(
            [
                '# -*- coding: utf-8 -*-\n',
                '\n',
                '[aä]\n',
                "option1 = Voilà l'été\n",
                "option2 = Voilà l'été\n",
                'öption0 = x\n',
                # "option3 = Voilà l'été\n",
                '\n',
                '[b]\n',
                'öption0 = y\n',
                '\n'
            ],
            configfile.readlines())
        configfile.close()
        config2 = Configuration(self.filename)
        self.assertEquals('x', config2.get(u'aä', u'öption0'))
        self.assertEquals(u"Voilà l'été", config2.get(u'aä', 'option1'))
        self.assertEquals(u"Voilà l'été", config2.get(u'aä', 'option2'))
Esempio n. 3
0
    def test_component_no_overwrite_parent(self):
        """Values in parent configuration are not overwritten."""
        parent_config = Configuration(self.sitename)
        parent_config.set('compa', 'opt1', 3)
        parent_config.save()
        config = self._read()
        config.set('inherit', 'file', 'trac-site.ini')
        config.save()
        config.parse_if_needed(True)
        config.set_defaults(component='trac.tests.config.CompA')
        config.save()

        with open(self.sitename, 'r') as f:
            self.assertEqual('# -*- coding: utf-8 -*-\n', f.next())
            self.assertEqual('\n', f.next())
            self.assertEqual('[compa]\n', f.next())
            self.assertEqual('opt1 = 3\n', f.next())
            self.assertEqual('\n', f.next())
            self.assertRaises(StopIteration, f.next)

        with open(self.filename, 'r') as f:
            self.assertEqual('# -*- coding: utf-8 -*-\n', f.next())
            self.assertEqual('\n', f.next())
            self.assertEqual('[compa]\n', f.next())
            self.assertEqual('opt2 = a\n', f.next())
            self.assertEqual('\n', f.next())
            self.assertEqual('[inherit]\n', f.next())
            self.assertEqual('file = trac-site.ini\n', f.next())
            self.assertEqual('\n', f.next())
            self.assertRaises(StopIteration, f.next)
Esempio n. 4
0
        def testcb():
            config = self._read()
            config.set('a', 'option2', "Voilà l'été")  # UTF-8
            config.set('a', 'option1', u"Voilà l'été") # unicode
            self.assertEquals('x', config.get('a', 'option'))
            self.assertEquals(u"Voilà l'été", config.get('a', 'option1'))
            self.assertEquals(u"Voilà l'été", config.get('a', 'option2'))
            config.save()

            configfile = open(self.filename, 'r')
            self.assertEquals(['# -*- coding: utf-8 -*-\n',
                               '\n',
                               '[a]\n',
                               "option1 = Voilà l'été\n",
                               "option2 = Voilà l'été\n",
                               '\n',
                               '[inherit]\n',
                               "file = trac-site.ini\n",
                               '\n'],
                              configfile.readlines())
            configfile.close()
            config2 = Configuration(self.filename)
            self.assertEquals('x', config2.get('a', 'option'))
            self.assertEquals(u"Voilà l'été", config2.get('a', 'option1'))
            self.assertEquals(u"Voilà l'été", config2.get('a', 'option2'))
Esempio n. 5
0
    def test_set_and_save_inherit(self):
        with self.inherited_file():
            self._write(['[a]', 'option = x'], site=True)
            config = self._read()
            config.set('a', 'option2', "Voilà l'été")  # UTF-8
            config.set('a', 'option1', u"Voilà l'été") # unicode
            self.assertEqual('x', config.get('a', 'option'))
            self.assertEqual(u"Voilà l'été", config.get('a', 'option1'))
            self.assertEqual(u"Voilà l'été", config.get('a', 'option2'))
            config.save()

            configfile = open(self.filename, 'r')
            self.assertEqual(['# -*- coding: utf-8 -*-\n',
                              '\n',
                              '[a]\n',
                              "option1 = Voilà l'été\n",
                              "option2 = Voilà l'été\n",
                              '\n',
                              '[inherit]\n',
                              "file = trac-site.ini\n",
                              '\n'],
                             configfile.readlines())
            configfile.close()
            config2 = Configuration(self.filename)
            self.assertEqual('x', config2.get('a', 'option'))
            self.assertEqual(u"Voilà l'été", config2.get('a', 'option1'))
            self.assertEqual(u"Voilà l'été", config2.get('a', 'option2'))
Esempio n. 6
0
    def setUp(self):
        self.config = Configuration(None)
        self.config.parser.add_section(u'séction1')
        self.config.parser.set(u'séction1', u'öption1', u'cönfig-valué')
        self.config.parser.set(u'séction1', u'öption4', u'cönfig-valué')
        parent_config = Configuration(None)
        parent_config.parser.add_section(u'séction1')
        parent_config.parser.add_section(u'séction2')
        parent_config.parser.set(u'séction1', u'öption1', u'cönfig-valué')
        parent_config.parser.set(u'séction1', u'öption2', u'înherited-valué')
        parent_config.parser.set(u'séction2', u'öption2', u'înherited-valué')
        self.config.parents = [parent_config]

        class OptionClass(object):
            Option(u'séction1', u'öption1', u'dēfault-valué')
            Option(u'séction1', u'öption2', u'dēfault-valué')
            Option(u'séction1', u'öption3', u'dēfault-valué')
            Option(u'séction3', u'öption1', u'dēfault-valué')
Esempio n. 7
0
 def _read(self):
     return Configuration(self.filename)
Esempio n. 8
0
 def test_repr(self):
     self.assertEqual('<Configuration None>', repr(Configuration(None)))
     config = self._read()
     self.assertEqual("<Configuration %r>" % self.filename, repr(config))