[Erp5-report] r32376 leonardo - /erp5/trunk/products/ERP5/tests/testTranslation.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 9 18:16:26 CET 2010


Author: leonardo
Date: Tue Feb  9 18:16:22 2010
New Revision: 32376

URL: http://svn.erp5.org?rev=32376&view=rev
Log:
isolate catalog related translation tests from the mechanism for supplying translations

Modified:
    erp5/trunk/products/ERP5/tests/testTranslation.py

Modified: erp5/trunk/products/ERP5/tests/testTranslation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testTranslation.py?rev=32376&r1=32375&r2=32376&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testTranslation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testTranslation.py [utf8] Tue Feb  9 18:16:22 2010
@@ -274,51 +274,109 @@
                               "En bon usage") 
     self.assertEquals(
          organisation.getTranslatedValidationStateTitle(),'Validé')
-    
-    
-     
-    
-  def test_standard_translated_related_keys(self):
+
+class StandardRelatedKeysTranslationBase(ERP5TypeTestCase):
+  
+  def getBusinessTemplateList(self):
+    return ['erp5_base',]
+
+  def beforeTearDown(self):
+    person_module = self.portal.person_module
+    person_module.manage_delObjects(list(person_module.objectIds()))
+    organisation_module = self.portal.organisation_module
+    organisation_module.manage_delObjects(list(organisation_module.objectIds()))
+    self.stepTic()
+
+  def check_standard_translated_related_keys(self):
     # make sure we can search by "translated_validation_state_title" and
     # "translated_portal_type"
-    message_catalog = self.portal.Localizer.erp5_ui
-    lang = 'fr'
-    if lang not in [x['id'] for x in
-        self.portal.Localizer.get_languages_map()]:
-      self.portal.Localizer.manage_addLanguage(lang)
-
-    message_catalog.gettext('Draft', add=1)
-    message_catalog.gettext('Person', add=1)
-    message_catalog.message_edit('Draft', lang, 'Brouillon', '')
-    message_catalog.message_edit('Person', lang, 'Personne', '')
-
+    lang='fr'
     person_1 = self.portal.person_module.newContent(portal_type='Person')
     person_1.validate()
     person_2 = self.portal.person_module.newContent(portal_type='Person')
     organisation = self.portal.organisation_module.newContent(
                             portal_type='Organisation')
     
-    transaction.commit()
-    self.tic()
-
-    # patch the method, we'll abort later
+    self.stepTic()
+    # patch the method, delete it later, or it would fail on commit
     self.portal.Localizer.get_selected_language = lambda: lang
-    self.assertEquals(set([person_1, person_2]),
-        set([x.getObject() for x in
-          self.portal.portal_catalog(translated_portal_type='Personne')]))
-    LOG("ORGANISATION TEST",0,organisation)
-   
-    self.assertEquals(set([person_2, organisation]),
-        set([x.getObject() for x in
-          self.portal.portal_catalog(translated_validation_state_title='Brouillon',
-                                     portal_type=('Person', 'Organisation'))]))
-    self.assertEquals([person_2],
-        [x.getObject() for x in
-          self.portal.portal_catalog(translated_validation_state_title='Brouillon',
-                                     translated_portal_type='Personne')])
-    transaction.abort()
+    try:
+      self.assertEquals(set([person_1, person_2]),
+          set([x.getObject() for x in
+            self.portal.portal_catalog(translated_portal_type='Personne')]))
+      LOG("ORGANISATION TEST",0,organisation)
+      
+      self.assertEquals(set([person_2, organisation]),
+          set([x.getObject() for x in
+            self.portal.portal_catalog(translated_validation_state_title='Brouillon',
+                                       portal_type=('Person', 'Organisation'))]))
+      self.assertEquals([person_2],
+          [x.getObject() for x in
+            self.portal.portal_catalog(translated_validation_state_title='Brouillon',
+                                       translated_portal_type='Personne')])
+    finally:
+      del self.portal.Localizer.get_selected_language
+
+class TestStandardRelatedKeysWithLocalizer(StandardRelatedKeysTranslationBase):
+
+  def beforeTearDown(self):
+    erp5_ui = self.portal.Localizer.erp5_ui
+    translations = erp5_ui.get_translations('Person')
+    translations.pop('fr', None)
+    self.assertEquals(erp5_ui.gettext('Person', lang='fr'), 'Person')
+    translations = erp5_ui.get_translations('Draft')
+    translations.pop('fr', None)
+    self.assertEquals(erp5_ui.gettext('Draft', lang='fr'), 'Draft')
+    StandardRelatedKeysTranslationBase.beforeTearDown(self)
+
+  def test_standard_translated_related_keys(self):
+    # manually add portal type and workflow title translations to the
+    # message catalog
+    lang = 'fr'
+    if lang not in [x['id'] for x in
+        self.portal.Localizer.get_languages_map()]:
+      self.portal.Localizer.manage_addLanguage(lang)
+
+    message_catalog = self.portal.Localizer.erp5_ui
+    message_catalog.gettext('Draft', add=1)
+    message_catalog.gettext('Person', add=1)
+    message_catalog.message_edit('Draft', lang, 'Brouillon', '')
+    message_catalog.message_edit('Person', lang, 'Personne', '')
+
+    self.portal.ERP5Site_updateTranslationTable()
+
+    self.check_standard_translated_related_keys()
+
+class TestStandardRelatedKeysWithBusinessTemplate(StandardRelatedKeysTranslationBase):
+
+  def _cleanUpTranslations(self):
+    self.uninstallBusinessTemplate('erp5_l10n_fr')
+    localizer = self.portal.Localizer
+    self.assertEquals(localizer.erp5_ui.gettext('Person', lang='fr'), 'Person')
+
+  def afterSetUp(self):
+    StandardRelatedKeysTranslationBase.afterSetUp(self)
+    # in case a saved previous test poluted the environment with the
+    # erp5_l10n_fr BT
+    self._cleanUpTranslations()
+    
+  def beforeTearDown(self):
+    self._cleanUpTranslations()
+    StandardRelatedKeysTranslationBase.beforeTearDown(self)
+
+  def test_businessTemplateTranslation(self):
+    message_catalog = self.portal.Localizer.erp5_ui
+    self.assertEquals(message_catalog.gettext('Person', lang='fr'), 'Person')
+    self.manuallyInstallBusinessTemplate('erp5_l10n_fr')
+    self.assertEquals(message_catalog.gettext('Person', lang='fr'), 'Personne')
+
+  def test_standard_translated_related_keys(self):
+    self.manuallyInstallBusinessTemplate('erp5_l10n_fr')
+    self.check_standard_translated_related_keys()
 
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestTranslation))
+  suite.addTest(unittest.makeSuite(TestStandardRelatedKeysWithLocalizer))
+  suite.addTest(unittest.makeSuite(TestStandardRelatedKeysWithBusinessTemplate))
   return suite




More information about the Erp5-report mailing list