Mercurial > babel > old > babel-test
view babel/messages/tests/mofile.py @ 487:2d1c17275e5b stable-0.9.x
Merged revisions 484-489 via svnmerge from
http://svn.edgewall.org/repos/babel/trunk
........
r484 | jruigrok | 2010-02-19 14:16:08 +0100 (vr, 19 feb 2010) | 4 lines
Fix testcase name typo.
Switch to use a locale that uses a different singular and plural form instead
of just one form for both singular and plural.
........
r485 | jruigrok | 2010-02-19 14:38:24 +0100 (vr, 19 feb 2010) | 2 lines
Add a test for a locale with one plural form.
........
r486 | jruigrok | 2010-02-19 14:45:25 +0100 (vr, 19 feb 2010) | 3 lines
Put the square brackets test after all the normal plural tests. It's more
logical.
........
r487 | jruigrok | 2010-02-19 15:12:41 +0100 (vr, 19 feb 2010) | 2 lines
More than two plural forms work nowadays. Adjust the test.
........
r488 | jruigrok | 2010-02-19 15:15:56 +0100 (vr, 19 feb 2010) | 2 lines
Actually make the msgid_plural be a plural as per typical use case.
........
r489 | jruigrok | 2010-02-24 13:27:32 +0100 (wo, 24 feb 2010) | 2 lines
Forgot to bump the copyright line.
........
author | jruigrok |
---|---|
date | Sun, 11 Apr 2010 09:09:11 +0000 |
parents | faf0ead3a132 |
children | aa8457401353 |
line wrap: on
line source
# -*- coding: utf-8 -*- # # Copyright (C) 2007 Edgewall Software # All rights reserved. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at http://babel.edgewall.org/wiki/License. # # This software consists of voluntary contributions made by many # individuals. For the exact contribution history, see the revision # history and logs, available at http://babel.edgewall.org/log/. import doctest import gettext import unittest from StringIO import StringIO from babel.messages import mofile, Catalog class WriteMoTestCase(unittest.TestCase): def test_sorting(self): # Ensure the header is sorted to the first entry so that its charset # can be applied to all subsequent messages by GNUTranslations # (ensuring all messages are safely converted to unicode) catalog = Catalog(locale='en_US') catalog.add(u'', '''\ "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n''') catalog.add(u'foo', 'Voh') catalog.add((u'There is', u'There are'), (u'Es gibt', u'Es gibt')) catalog.add(u'Fizz', '') catalog.add(('Fuzz', 'Fuzzes'), ('', '')) buf = StringIO() mofile.write_mo(buf, catalog) buf.seek(0) translations = gettext.GNUTranslations(fp=buf) self.assertEqual(u'Voh', translations.ugettext('foo')) assert isinstance(translations.ugettext('foo'), unicode) self.assertEqual(u'Es gibt', translations.ungettext('There is', 'There are', 1)) assert isinstance(translations.ungettext('There is', 'There are', 1), unicode) self.assertEqual(u'Fizz', translations.ugettext('Fizz')) assert isinstance(translations.ugettext('Fizz'), unicode) self.assertEqual(u'Fuzz', translations.ugettext('Fuzz')) assert isinstance(translations.ugettext('Fuzz'), unicode) self.assertEqual(u'Fuzzes', translations.ugettext('Fuzzes')) assert isinstance(translations.ugettext('Fuzzes'), unicode) def test_more_plural_forms(self): catalog2 = Catalog(locale='ru_RU') catalog2.add(('Fuzz', 'Fuzzes'), ('', '', '')) buf = StringIO() mofile.write_mo(buf, catalog2) def suite(): suite = unittest.TestSuite() suite.addTest(doctest.DocTestSuite(mofile)) suite.addTest(unittest.makeSuite(WriteMoTestCase)) return suite if __name__ == '__main__': unittest.main(defaultTest='suite')