示例#1
0
 def test_radd(self):
     # Strings do not have radd, so it needs to be handled specially.
     translation.add_domain('foo', self._localedir('locale1'))
     translation.set_language(('es', ))
     self.assertEqual('- ' + translation.gettext_lazy('test'), '- Español')
     self.assertEqual(
         translation.gettext_lazy('test') + 'asdf', 'Españolasdf')
示例#2
0
    def test_lazy(self):
        translation.add_domain('foo', self._localedir('locale1'))
        translation.set_language(('es', ))
        l1 = translation.gettext_lazy('test')
        self.assertTrue(isinstance(l1, translation.LazyTranslation))
        l2 = translation.gettext_lazy('test1')

        self.assertTrue(isinstance(l1 + l2, translation.LazyTranslation))
        self.assertEqual(str(l1 + l2), 'Españolburrito')

        m = translation.gettext_lazy('test %(arg1)s %(arg2)s') % {
            'arg1': 'one',
            'arg2': 'two',
        }
        self.assertTrue(isinstance(m, translation.LazyTranslation))
        self.assertEqual(str(m), 'chalupa two one')

        m = int(translation.gettext_lazy('1'))
        self.assertTrue(isinstance(m, int))
        self.assertEqual(m, 1)

        m = translation.gettext_lazy('-').join(
            (translation.gettext_lazy('test'),
             translation.gettext_lazy('test1')))
        self.assertTrue(isinstance(m, translation.LazyTranslation))
        self.assertEqual(str(m), 'Español-burrito')

        # Not going to test all the LazyTranslation methods.

        # dgettext_lazy and ldgettext_lazy handled by test_domain.
        # ugettext_lazy tested by test_gettext
        # lgettext_lazy tested by test_preferred_locale

        # chain a few operations together
        m1 = translation.gettext_lazy('test')
        m2 = translation.gettext_lazy('test1')
        m3 = m1 + m2
        self.assertTrue(isinstance(m3, translation.LazyTranslation))
        self.assertEqual(m3, 'Españolburrito')
        m4 = m3 * 2
        self.assertTrue(isinstance(m4, translation.LazyTranslation))
        self.assertEqual(str(m4), 'EspañolburritoEspañolburrito')
        m5 = m4.lower()
        self.assertTrue(isinstance(m5, translation.LazyTranslation))
        self.assertEqual(m5.decode('utf-8'), u'españolburritoespañolburrito')
        self.assertEqual(str(m5), 'españolburritoespañolburrito')
        self.assertEqual(m5, 'españolburritoespañolburrito')

        # change language
        m1 = translation.gettext_lazy('test')
        self.assertEqual(m1, 'Español')
        translation.set_language(('en_US', ))
        self.assertEqual(m1, 'test')
示例#3
0
    def test_lazy(self):
        translation.add_domain('foo', self._localedir('locale1'))
        translation.set_language(('es',))
        l1 = translation.gettext_lazy('test')
        self.assertTrue(isinstance(l1, translation.LazyTranslation))
        l2 = translation.gettext_lazy('test1')

        self.assertTrue(isinstance(l1 + l2, translation.LazyTranslation))
        self.assertEqual(str(l1 + l2), 'Españolburrito')

        m = translation.gettext_lazy('test %(arg1)s %(arg2)s') % {'arg1': 'one',
                                                                  'arg2': 'two',
                                                                 }
        self.assertTrue(isinstance(m, translation.LazyTranslation))
        self.assertEqual(str(m), 'chalupa two one')

        m = int(translation.gettext_lazy('1'))
        self.assertTrue(isinstance(m, int))
        self.assertEqual(m, 1)

        m = translation.gettext_lazy('-').join(
            (translation.gettext_lazy('test'),
             translation.gettext_lazy('test1')))
        self.assertTrue(isinstance(m, translation.LazyTranslation))
        self.assertEqual(str(m), 'Español-burrito')

        # Not going to test all the LazyTranslation methods.

        # dgettext_lazy and ldgettext_lazy handled by test_domain.
        # ugettext_lazy tested by test_gettext
        # lgettext_lazy tested by test_preferred_locale

        # chain a few operations together
        m1 = translation.gettext_lazy('test')
        m2 = translation.gettext_lazy('test1')
        m3 = m1 + m2
        self.assertTrue(isinstance(m3, translation.LazyTranslation))
        self.assertEqual(m3, 'Españolburrito')
        m4 = m3 * 2
        self.assertTrue(isinstance(m4, translation.LazyTranslation))
        self.assertEqual(str(m4), 'EspañolburritoEspañolburrito')
        m5 = m4.lower()
        self.assertTrue(isinstance(m5, translation.LazyTranslation))
        self.assertEqual(m5.decode('utf-8'), u'españolburritoespañolburrito')
        self.assertEqual(str(m5), 'españolburritoespañolburrito')
        self.assertEqual(m5, 'españolburritoespañolburrito')

        # change language
        m1 = translation.gettext_lazy('test')
        self.assertEqual(m1, 'Español')
        translation.set_language(('en_US',))
        self.assertEqual(m1, 'test')
示例#4
0
    def test_thread_local(self):
        translation.add_domain('foo', self._localedir('locale1'))
        self.assertEqual(translation.gettext('test'), 'test')
        self.assertEqual(translation.gettext('test4'), 'test4')
        translation.set_language(('es', ))
        self.assertEqual(translation.gettext('test'), 'Español')
        self.assertEqual(translation.gettext('test4'), 'paella')
        translation.set_language_current_thread(('de', ))
        self.assertEqual(translation.gettext('test'), 'groß')
        self.assertEqual(translation.gettext('test4'), 'freundleben')

        translation.reset()
        translation.add_domain('foo', self._localedir('locale1'))
        self.assertEqual(translation.gettext('test'), 'test')
        self.assertEqual(translation.gettext('test4'), 'test4')
        t = translation.gettext_lazy('test')
        self.assertEqual(t, 'test')
        current = [('es', )]

        def lang():
            return current[0]

        translation.set_language_current_thread(lang)
        self.assertEqual(t, 'Español')
        self.assertEqual(translation.gettext('test'), 'Español')
        self.assertEqual(translation.gettext('test4'), 'paella')
        current[0] = ('de', )
        self.assertEqual(t, 'groß')
        self.assertEqual(translation.gettext('test'), 'groß')
        self.assertEqual(translation.gettext('test4'), 'freundleben')
示例#5
0
    def test_thread_local(self):
        translation.add_domain('foo', self._localedir('locale1'))
        self.assertEqual(translation.gettext('test'), 'test')
        self.assertEqual(translation.gettext('test4'), 'test4')
        translation.set_language(('es',))
        self.assertEqual(translation.gettext('test'), 'Español')
        self.assertEqual(translation.gettext('test4'), 'paella')
        translation.set_language_current_thread(('de',))
        self.assertEqual(translation.gettext('test'), 'groß')
        self.assertEqual(translation.gettext('test4'), 'freundleben')

        translation.reset()
        translation.add_domain('foo', self._localedir('locale1'))
        self.assertEqual(translation.gettext('test'), 'test')
        self.assertEqual(translation.gettext('test4'), 'test4')
        t = translation.gettext_lazy('test')
        self.assertEqual(t, 'test')
        current = [('es',)]
        def lang():
            return current[0]
        translation.set_language_current_thread(lang)
        self.assertEqual(t, 'Español')
        self.assertEqual(translation.gettext('test'), 'Español')
        self.assertEqual(translation.gettext('test4'), 'paella')
        current[0] = ('de',)
        self.assertEqual(t, 'groß')
        self.assertEqual(translation.gettext('test'), 'groß')
        self.assertEqual(translation.gettext('test4'), 'freundleben')
示例#6
0
 def test_lazy_domain(self):
     # Create lazy before domain is installed.
     m = translation.gettext_lazy('test')
     self.assertEqual(str(m), 'test')
     translation.add_domain('foo', self._localedir('locale1'))
     self.assertEqual(str(m), 'test')
     translation.set_language(('es', ))
     self.assertEqual(str(m), 'Español')
示例#7
0
 def test_lazy_domain(self):
     # Create lazy before domain is installed.
     m = translation.gettext_lazy('test')
     self.assertEqual(str(m), 'test')
     translation.add_domain('foo', self._localedir('locale1'))
     self.assertEqual(str(m), 'test')
     translation.set_language(('es',))
     self.assertEqual(str(m), 'Español')
示例#8
0
    def test_refresh(self):
        for check_timestamps in (True, False):
            translation.reset()
            lazy = translation.gettext_lazy('test')
            self.assertEqual(str(lazy), 'test')
            self.assertEqual(translation.gettext('test'), 'test')

            translation.set_language(('en', ))
            path = os.path.join(os.getcwd(), 'translation', 'locale-dynamic',
                                'en_US', 'LC_MESSAGES')
            target = os.path.join(path, 'foo.mo')
            if os.path.exists(target):
                os.unlink(target)

            shutil.copyfile(os.path.join(path, 'foo1.mo'), target)
            # Make sure timestamps are different.
            t = time.time()
            os.utime(target, (t - 120, t - 120))
            translation.add_domain('foo', self._localedir('locale-dynamic'))

            self.assertEqual(str(lazy), 'test-dyn1')
            self.assertEqual(translation.gettext('test'), 'test-dyn1')

            os.unlink(target)
            # Make sure timestamps are different.
            shutil.copyfile(os.path.join(path, 'foo2.mo'), target)
            os.utime(target, (t - 60, t - 60))
            translation.get_domain('foo').refresh(check_timestamps)
            self.assertEqual(str(lazy), 'test-dyn2')
            self.assertEqual(translation.gettext('test'), 'test-dyn2')

            os.unlink(target)
            # Make sure timestamps are different.
            shutil.copyfile(os.path.join(path, 'foo1.mo'), target)
            os.utime(target, (t - 30, t - 30))
            translation.get_domain('foo').refresh(check_timestamps)
            self.assertEqual(str(lazy), 'test-dyn1')
            self.assertEqual(translation.gettext('test'), 'test-dyn1')
示例#9
0
    def test_refresh(self):
        for check_timestamps in (True, False):
            translation.reset()
            lazy = translation.gettext_lazy('test')
            self.assertEqual(str(lazy), 'test')
            self.assertEqual(translation.gettext('test'), 'test')

            translation.set_language(('en',))
            path = os.path.join(os.getcwd(), 'translation', 'locale-dynamic', 'en_US', 'LC_MESSAGES')
            target = os.path.join(path, 'foo.mo')
            if os.path.exists(target):
                os.unlink(target)

            shutil.copyfile(os.path.join(path, 'foo1.mo'), target)
            # Make sure timestamps are different.
            t = time.time()
            os.utime(target, (t-120, t-120))
            translation.add_domain('foo', self._localedir('locale-dynamic'))

            self.assertEqual(str(lazy), 'test-dyn1')
            self.assertEqual(translation.gettext('test'), 'test-dyn1')

            os.unlink(target)
            # Make sure timestamps are different.
            shutil.copyfile(os.path.join(path, 'foo2.mo'), target)
            os.utime(target, (t-60, t-60))
            translation.get_domain('foo').refresh(check_timestamps)
            self.assertEqual(str(lazy), 'test-dyn2')
            self.assertEqual(translation.gettext('test'), 'test-dyn2')

            os.unlink(target)
            # Make sure timestamps are different.
            shutil.copyfile(os.path.join(path, 'foo1.mo'), target)
            os.utime(target, (t-30, t-30))
            translation.get_domain('foo').refresh(check_timestamps)
            self.assertEqual(str(lazy), 'test-dyn1')
            self.assertEqual(translation.gettext('test'), 'test-dyn1')
示例#10
0
 def test_radd(self):
     # Strings do not have radd, so it needs to be handled specially.
     translation.add_domain('foo', self._localedir('locale1'))
     translation.set_language(('es',))
     self.assertEqual('- ' + translation.gettext_lazy('test'), '- Español')
     self.assertEqual(translation.gettext_lazy('test') + 'asdf', 'Españolasdf')