[Zope-Checkins] CVS: Zope3/lib/python/Zope/I18n/tests - testGlobalTranslationService.py:1.4

Barry Warsaw barry@wooz.org
Tue, 18 Jun 2002 14:24:31 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/I18n/tests
In directory cvs.zope.org:/tmp/cvs-serv3776/lib/python/Zope/I18n/tests

Modified Files:
	testGlobalTranslationService.py 
Log Message:
testGlobalTranslationService(): Moved here

testSimpleFallbackTranslation(): Added to test for fallback languages.



=== Zope3/lib/python/Zope/I18n/tests/testGlobalTranslationService.py 1.3 => 1.4 ===
 from Zope.I18n.GlobalTranslationService import GlobalTranslationService
 from Zope.I18n.GettextMessageCatalog import GettextMessageCatalog 
-from testIReadTranslationService import TestIReadTranslationService
+from testIReadTranslationService import TestIReadTranslationService, \
+     Environment
 
 def testdir():
     from Zope.I18n import tests
@@ -37,6 +38,38 @@
         service.addCatalog(en_catalog)
         service.addCatalog(de_catalog)
         return service
+
+    def testSimpleNoTranslate(self):
+        translate = self._service.translate
+        raises = self.assertRaises
+        eq = self.assertEqual
+        # Unset fallback translation languages
+        self._service.setLanguageFallbacks([])
+        # Test that we have at least the minimum required arguments
+        raises(TypeError, translate, 'Hello')
+        # Test that a translation in an unsupported language returns the
+        # original message id unchanged, if there is no fallback language
+        eq(translate('default', 'short_greeting', target_language='es'),
+           'short_greeting')
+        # Same test, but use the context argument instead of target_language
+        context = Environment()
+        eq(translate('default', 'short_greeting', context=context),
+           'short_greeting')
+        # Test that at least one of context or target_language is given
+        raises(TypeError, translate, 'short_greeting', context=None)
+    
+    def testSimpleFallbackTranslation(self):
+        translate = self._service.translate
+        raises = self.assertRaises
+        eq = self.assertEqual
+        # Test that a translation in an unsupported language returns a
+        # translation in the fallback language (by default, English)
+        eq(translate('default', 'short_greeting', target_language='es'),
+           u'Hello!')
+        # Same test, but use the context argument instead of target_language
+        context = Environment()
+        eq(translate('default', 'short_greeting', context=context),
+           u'Hello!')
 
 
 def test_suite():