From 63b03799f9b3a3a30a43ae2e0df197fb10e2050f Mon Sep 17 00:00:00 2001
From: Leonardo Rochael Almeida <leonardo@nexedi.com>
Date: Wed, 24 Feb 2010 19:57:14 +0000
Subject: [PATCH] fix translation tests now that Zope 2.12 has domain
 translation aliases

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@33108 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testERP5Core.py | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/product/ERP5/tests/testERP5Core.py b/product/ERP5/tests/testERP5Core.py
index 281dee585e..5b1e547931 100644
--- a/product/ERP5/tests/testERP5Core.py
+++ b/product/ERP5/tests/testERP5Core.py
@@ -52,6 +52,8 @@ except ImportError:
   # zope.i18n utilities
   import zope.interface
   import zope.component
+  import Acquisition
+
   global_translation_service = None
   
   from zope.i18n.interfaces import ITranslationDomain, \
@@ -72,10 +74,25 @@ except ImportError:
     global_translation_service = translation_service
     zope.component.provideUtility(DummyTranslationDomainFallback,
                                   provides=IFallbackTranslationDomainFactory)
+    # disable translation for the 'ui' domain so it can use the fallback above.
+    # Save it on a portal attribute since we don't have access to the test
+    # class 
+    sm = zope.component.getSiteManager()
+    portal = Acquisition.aq_parent(sm)
+    ui_domain = sm.getUtility(ITranslationDomain, name='ui')
+    # store in a list to avoid acquisition wrapping
+    portal._save_ui_domain = [ui_domain]
+    sm.unregisterUtility(provided=ITranslationDomain, name='ui')
 
   def unregister_translation_domain_fallback():
     from zope.component.globalregistry import base
     base.unregisterUtility(DummyTranslationDomainFallback)
+    sm = zope.component.getSiteManager()
+    portal = Acquisition.aq_parent(sm)
+    ui_domain = getattr(portal, '_save_ui_domain', [None]).pop()
+    if ui_domain is not None:
+      sm.registerUtility(ui_domain, ITranslationDomain, 'ui')
+      del portal._save_ui_domain
 
 HTTP_OK = 200
 HTTP_UNAUTHORIZED = 401
@@ -106,13 +123,12 @@ class TestERP5Core(ERP5TypeTestCase, ZopeTestCase.Functional):
 
   def afterSetUp(self):
     self.login()
-    self.portal = self.getPortal()
     self.portal_id = self.portal.getId()
     self.auth = '%s:%s' % (self.manager_username, self.manager_password)
 
   def beforeTearDown(self):
-    unregister_translation_domain_fallback()
     transaction.abort()
+    unregister_translation_domain_fallback()
     if 'test_folder' in self.portal.objectIds():
       self.portal.manage_delObjects(['test_folder'])
     self.portal.portal_selections.setSelectionFor('test_selection', None)
-- 
2.30.9