def test_templates_need_update_true(self): """Templates need to be updated.""" self.env.config.set('notification', 'ticket_subject_template', '$prefix #$ticket.id: $summary') self.env.config.set('notification', 'batch_subject_template', '$prefix Batch modify: $tickets_descr') self.env.config.save() db45.do_upgrade(self.env, None, None) self.assertIn(('INFO', 'Replaced value of [notification] ' 'ticket_subject_template: $prefix #$ticket.id: ' '$summary -> ${prefix} #${ticket.id}: ${summary}'), self.env.log_messages) self.assertIn(('INFO', 'Replaced value of [notification] ' 'batch_subject_template: $prefix Batch modify: ' '$tickets_descr -> ${prefix} Batch modify: ' '${tickets_descr}'), self.env.log_messages) parser = UnicodeConfigParser() parser.read(self.env.config.filename) self.assertEqual('${prefix} #${ticket.id}: ${summary}', parser.get('notification', 'ticket_subject_template')) self.assertEqual('${prefix} Batch modify: ${tickets_descr}', parser.get('notification', 'batch_subject_template')) self.assertTrue(self._backup_file_exists())
class UnicodeParserTestCase(unittest.TestCase): def setUp(self): self.tempdir = tempfile.mkdtemp() self.filename = os.path.join(self.tempdir, 'config.ini') _write(self.filename, [ u'[ä]', u'öption = ÿ', u'[ä]', u'optīon = 1.1', u'[č]', u'ôption = ž', u'[č]', u'optïon = 1', u'[ė]', u'optioñ = true', ]) self.parser = UnicodeConfigParser() self._read() def tearDown(self): shutil.rmtree(self.tempdir) def _write(self): with open(self.filename, 'w') as f: self.parser.write(f) def _read(self): self.parser.read(self.filename) def test_sections(self): self.assertEqual([u'ä', u'č', u'ė'], self.parser.sections()) def test_add_section(self): self.parser.add_section(u'ē') self._write() self.assertEqual( u'[ä]\n' u'öption = ÿ\n' u'optīon = 1.1\n\n' u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n' u'[ė]\n' u'optioñ = true\n\n' u'[ē]\n\n', _read(self.filename)) def test_has_section(self): self.assertTrue(self.parser.has_section(u'ä')) self.assertTrue(self.parser.has_section(u'č')) self.assertTrue(self.parser.has_section(u'ė')) self.assertFalse(self.parser.has_section(u'î')) def test_options(self): self.assertEqual([u'öption', u'optīon'], self.parser.options(u'ä')) self.assertEqual([u'ôption', u'optïon'], self.parser.options(u'č')) def test_get(self): self.assertEqual(u'ÿ', self.parser.get(u'ä', u'öption')) self.assertEqual(u'ž', self.parser.get(u'č', u'ôption')) def test_items(self): self.assertEqual([(u'öption', u'ÿ'), (u'optīon', u'1.1')], self.parser.items(u'ä')) self.assertEqual([(u'ôption', u'ž'), (u'optïon', u'1')], self.parser.items(u'č')) def test_getint(self): self.assertEqual(1, self.parser.getint(u'č', u'optïon')) def test_getfloat(self): self.assertEqual(1.1, self.parser.getfloat(u'ä', u'optīon')) def test_getboolean(self): self.assertTrue(self.parser.getboolean(u'ė', u'optioñ')) def test_has_option(self): self.assertTrue(self.parser.has_option(u'ä', u'öption')) self.assertTrue(self.parser.has_option(u'ä', u'optīon')) self.assertTrue(self.parser.has_option(u'č', u'ôption')) self.assertTrue(self.parser.has_option(u'č', u'optïon')) self.assertTrue(self.parser.has_option(u'ė', u'optioñ')) self.assertFalse(self.parser.has_option(u'î', u'optioñ')) def test_set(self): self.parser.set(u'ä', u'öption', u'ù') self.parser.set(u'ė', u'optiœn', None) self._write() self.assertEqual( u'[ä]\n' u'öption = ù\n' u'optīon = 1.1\n\n' u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n' u'[ė]\n' u'optioñ = true\n' u'optiœn = \n\n', _read(self.filename)) def test_remove_option(self): self.parser.remove_option(u'ä', u'öption') self.parser.remove_option(u'ė', u'optioñ') self._write() self.assertEqual( u'[ä]\n' u'optīon = 1.1\n\n' u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n' u'[ė]\n\n', _read(self.filename)) def test_remove_section(self): self.parser.remove_section(u'ä') self.parser.remove_section(u'ė') self._write() self.assertEqual( u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n', _read(self.filename))
class UnicodeParserTestCase(unittest.TestCase): def setUp(self): self.tempdir = mkdtemp() self.filename = os.path.join(self.tempdir, 'config.ini') _write(self.filename, [ u'[ä]', u'öption = ÿ', u'[ä]', u'optīon = 1.1', u'[č]', u'ôption = ž', u'[č]', u'optïon = 1', u'[ė]', u'optioñ = true', ]) self.parser = UnicodeConfigParser() self._read() def tearDown(self): rmtree(self.tempdir) def _write(self): with open(self.filename, 'w') as f: self.parser.write(f) def _read(self): self.parser.read(self.filename) def test_sections(self): self.assertEqual([u'ä', u'č', u'ė'], self.parser.sections()) def test_add_section(self): self.parser.add_section(u'ē') self._write() self.assertEqual( u'[ä]\n' u'öption = ÿ\n' u'optīon = 1.1\n\n' u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n' u'[ė]\n' u'optioñ = true\n\n' u'[ē]\n\n', _read(self.filename)) def test_has_section(self): self.assertTrue(self.parser.has_section(u'ä')) self.assertTrue(self.parser.has_section(u'č')) self.assertTrue(self.parser.has_section(u'ė')) self.assertFalse(self.parser.has_section(u'î')) def test_options(self): self.assertEqual([u'öption', u'optīon'], self.parser.options(u'ä')) self.assertEqual([u'ôption', u'optïon'], self.parser.options(u'č')) def test_get(self): self.assertEqual(u'ÿ', self.parser.get(u'ä', u'öption')) self.assertEqual(u'ž', self.parser.get(u'č', u'ôption')) def test_items(self): self.assertEqual([(u'öption', u'ÿ'), (u'optīon', u'1.1')], self.parser.items(u'ä')) self.assertEqual([(u'ôption', u'ž'), (u'optïon', u'1')], self.parser.items(u'č')) def test_getint(self): self.assertEqual(1, self.parser.getint(u'č', u'optïon')) def test_getfloat(self): self.assertEqual(1.1, self.parser.getfloat(u'ä', u'optīon')) def test_getboolean(self): self.assertTrue(self.parser.getboolean(u'ė', u'optioñ')) def test_has_option(self): self.assertTrue(self.parser.has_option(u'ä', u'öption')) self.assertTrue(self.parser.has_option(u'ä', u'optīon')) self.assertTrue(self.parser.has_option(u'č', u'ôption')) self.assertTrue(self.parser.has_option(u'č', u'optïon')) self.assertTrue(self.parser.has_option(u'ė', u'optioñ')) self.assertFalse(self.parser.has_option(u'î', u'optioñ')) def test_set(self): self.parser.set(u'ä', u'öption', u'ù') self.parser.set(u'ė', u'optiœn', None) self._write() self.assertEqual( u'[ä]\n' u'öption = ù\n' u'optīon = 1.1\n\n' u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n' u'[ė]\n' u'optioñ = true\n' u'optiœn = \n\n', _read(self.filename)) def test_remove_option(self): self.parser.remove_option(u'ä', u'öption') self.parser.remove_option(u'ė', u'optioñ') self._write() self.assertEqual( u'[ä]\n' u'optīon = 1.1\n\n' u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n' u'[ė]\n\n', _read(self.filename)) def test_remove_section(self): self.parser.remove_section(u'ä') self.parser.remove_section(u'ė') self._write() self.assertEqual( u'[č]\n' u'ôption = ž\n' u'optïon = 1\n\n', _read(self.filename))