Package elisa :: Package core :: Package tests :: Module test_i18n

Source Code for Module elisa.core.tests.test_i18n

 1  # Moovida - Home multimedia server 
 2  # Copyright (C) 2009 Fluendo Embedded S.L. (www.fluendo.com). 
 3  # All rights reserved. 
 4  # 
 5  # This file is available under one of two license agreements. 
 6  # 
 7  # This file is licensed under the GPL version 3. 
 8  # See "LICENSE.GPL" in the root of this distribution including a special 
 9  # exception to use Moovida with Fluendo's plugins. 
10  # 
11  # The GPL part of Moovida is also available under a commercial licensing 
12  # agreement from Fluendo. 
13  # See "LICENSE.Moovida" in the root directory of this distribution package 
14  # for details on that license. 
15   
16  from twisted.trial.unittest import TestCase 
17  from elisa.core.utils import i18n 
18   
19  import os 
20  import locale 
21   
22 -class TestI18n(TestCase):
23
24 - def patch_getenv(self, mock):
25 self._old_getenv = os.getenv 26 os.getenv = mock
27
28 - def unpatch_getenv(self):
29 os.getenv = self._old_getenv
30
31 - def patch_locale(self, mock):
32 self._old_locale = locale.getdefaultlocale 33 locale.getdefaultlocale = mock
34
35 - def unpatch_locale(self):
36 locale.getdefaultlocale = self._old_locale
37
39 40 def getenv_mock(variable_name): 41 if variable_name == 'LANG': 42 return 'C'
43 44 def locale_mock(): 45 return (None, None)
46 47 self.patch_getenv(getenv_mock) 48 self.patch_locale(locale_mock) 49 self.assertEquals(i18n.get_current_locale(), 'C') 50 self.unpatch_getenv() 51 self.unpatch_locale() 52
53 - def test_get_current_locale_fr(self):
54 55 def getenv_mock(variable_name): 56 if variable_name == 'LANG': 57 return 'fr_FR'
58 59 def locale_mock(): 60 return ('fr_FR', None) 61 62 self.patch_getenv(getenv_mock) 63 self.patch_locale(locale_mock) 64 self.assertEquals(i18n.get_current_locale(), 'fr_FR') 65 self.unpatch_getenv() 66 self.unpatch_locale() 67