diff options
author | Sylvain Viollon <sviollon@minddistrict.com> | 2018-10-22 10:32:54 +0200 |
---|---|---|
committer | Sylvain Viollon <sviollon@minddistrict.com> | 2018-10-22 10:32:54 +0200 |
commit | 80f8c1e9ff2a48b1142fe5741e90f8fcf35fc0a4 (patch) | |
tree | 1b4443354c893b3efc340a0d1245d6894e0eb414 /src/zope/i18n/tests/test_plurals.py | |
parent | b2dafdf8f98e4a5e8e004ad2f16c2bbed1d1bf31 (diff) | |
download | zope-i18n-80f8c1e9ff2a48b1142fe5741e90f8fcf35fc0a4.tar.gz |
Use ``msgid_plural`` as ``default_plural`` if not provided in ``translate()``.
Diffstat (limited to 'src/zope/i18n/tests/test_plurals.py')
-rw-r--r-- | src/zope/i18n/tests/test_plurals.py | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/src/zope/i18n/tests/test_plurals.py b/src/zope/i18n/tests/test_plurals.py index 4f7813e..12b46cc 100644 --- a/src/zope/i18n/tests/test_plurals.py +++ b/src/zope/i18n/tests/test_plurals.py @@ -16,10 +16,13 @@ """ import os import unittest -from zope.i18n import tests + +import zope.component +from zope.i18n import tests, translate from zope.i18n.translationdomain import TranslationDomain from zope.i18n.gettextmessagecatalog import GettextMessageCatalog from zope.i18nmessageid import MessageFactory +from zope.i18n.interfaces import ITranslationDomain class TestPlurals(unittest.TestCase): @@ -38,6 +41,57 @@ class TestPlurals(unittest.TestCase): domain.addCatalog(catalog) return domain + def test_defaults(self): + domain = self._getTranslationDomain('en') + zope.component.provideUtility(domain, ITranslationDomain, 'default') + self.assertEqual( + translate('One apple', domain='default', + msgid_plural='%d apples', number=0), + '0 apples') + self.assertEqual( + translate('One apple', domain='default', + msgid_plural='%d apples', number=1), + 'One apple') + self.assertEqual( + translate('One apple', domain='default', + msgid_plural='%d apples', number=2), + '2 apples') + + def test_missing_queryPluralMessage(self): + catalog = self._getMessageCatalog('en') + self.assertEqual(catalog.language, 'en') + + self.assertEqual( + catalog.queryPluralMessage( + 'One apple', '%d apples', 0, + dft1='One fruit', dft2='%d fruits'), + '0 fruits') + + self.assertEqual( + catalog.queryPluralMessage( + 'One apple.', '%d apples.', 1, + dft1='One fruit', dft2='%d fruits'), + 'One fruit') + + self.assertEqual( + catalog.queryPluralMessage( + 'One apple.', '%d apples.', 2, + dft1='One fruit', dft2='%d fruits'), + '2 fruits') + + def test_missing_getPluralMessage(self): + catalog = self._getMessageCatalog('en') + self.assertEqual(catalog.language, 'en') + + with self.assertRaises(KeyError): + catalog.getPluralMessage('One apple', '%d fruits', 0) + + with self.assertRaises(KeyError): + catalog.getPluralMessage('One apple', '%d fruits', 1) + + with self.assertRaises(KeyError): + catalog.getPluralMessage('One apple', '%d fruits', 2) + def test_GermanPlurals(self): """Germanic languages such as english and german share the plural rule. We test the german here. |