This ticket effectively fixes the translation of exception messages.

Ticket #903

Pavel
>From b051be4d816f94ebab3fc932b3d2372d1cf0345a Mon Sep 17 00:00:00 2001
From: Pavel Zuna <pz...@redhat.com>
Date: Wed, 2 Feb 2011 15:37:14 -0500
Subject: [PATCH] Remove deprecated i18n code from ipalib/request and all references to it.

Ticket #903
---
 ipalib/errors.py                  |    2 +-
 ipalib/parameters.py              |    2 +-
 ipalib/request.py                 |   40 ---------
 tests/test_ipalib/test_request.py |  161 -------------------------------------
 4 files changed, 2 insertions(+), 203 deletions(-)
 delete mode 100644 tests/test_ipalib/test_request.py

diff --git a/ipalib/errors.py b/ipalib/errors.py
index 20cd52b..63648d2 100644
--- a/ipalib/errors.py
+++ b/ipalib/errors.py
@@ -101,7 +101,7 @@ current block assignments:
 """
 
 from inspect import isclass
-from request import ugettext, ungettext
+from text import _ as ugettext, ngettext as ungettext
 from constants import TYPE_ERROR
 
 
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 22b0321..23177b3 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -102,7 +102,7 @@ a more detailed description for clarity.
 import re
 from types import NoneType
 from util import make_repr
-from request import ugettext
+from text import _ as ugettext
 from plugable import ReadOnly, lock, check_name
 from errors import ConversionError, RequirementError, ValidationError
 from errors import PasswordMismatch
diff --git a/ipalib/request.py b/ipalib/request.py
index 9a11fb9..15b26f5 100644
--- a/ipalib/request.py
+++ b/ipalib/request.py
@@ -23,8 +23,6 @@ Per-request thread-local data.
 """
 
 import threading
-import locale
-import gettext
 from base import ReadOnly, lock
 from constants import OVERRIDE_ERROR, CALLABLE_ERROR
 
@@ -58,41 +56,3 @@ def destroy_context():
             value.disconnect()
     context.__dict__.clear()
 
-
-def ugettext(message):
-    if hasattr(context, 'ugettext'):
-        return context.ugettext(message)
-    return message.decode('UTF-8')
-
-
-def ungettext(singular, plural, n):
-    if hasattr(context, 'ungettext'):
-        return context.ungettext(singular, plural, n)
-    if n == 1:
-        return singular.decode('UTF-8')
-    return plural.decode('UTF-8')
-
-
-def set_languages(*languages):
-    if hasattr(context, 'languages'):
-        raise StandardError(OVERRIDE_ERROR %
-            ('context', 'languages', context.languages, languages)
-        )
-    if len(languages) == 0:
-        languages = locale.getdefaultlocale()[:1]
-    context.languages = languages
-    assert type(context.languages) is tuple
-
-
-def create_translation(domain, localedir, *languages):
-    if hasattr(context, 'ugettext') or hasattr(context, 'ungettext'):
-        raise StandardError(
-            'create_translation() already called in thread %r' %
-            threading.currentThread().getName()
-        )
-    set_languages(*languages)
-    translation = gettext.translation(domain,
-        localedir=localedir, languages=context.languages, fallback=True
-    )
-    context.ugettext = translation.ugettext
-    context.ungettext = translation.ungettext
diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py
deleted file mode 100644
index 548156d..0000000
--- a/tests/test_ipalib/test_request.py
+++ /dev/null
@@ -1,161 +0,0 @@
-# Authors:
-#   Jason Gerard DeRose <jder...@redhat.com>
-#
-# Copyright (C) 2008  Red Hat
-# see file 'COPYING' for use and warranty contextrmation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-"""
-Test the `ipalib.request` module.
-"""
-
-import threading
-import locale
-from tests.util import raises, assert_equal
-from tests.util import TempDir, dummy_ugettext, dummy_ungettext
-from ipalib.constants import OVERRIDE_ERROR
-from ipalib import request
-
-
-def test_ugettext():
-    """
-    Test the `ipalib.request.ugettext` function.
-    """
-    f = request.ugettext
-    context = request.context
-    message = 'Hello, world!'
-
-    # Test with no context.ugettext:
-    assert not hasattr(context, 'ugettext')
-    assert_equal(f(message), u'Hello, world!')
-
-    # Test with dummy context.ugettext:
-    assert not hasattr(context, 'ugettext')
-    dummy = dummy_ugettext()
-    context.ugettext = dummy
-    assert f(message) is dummy.translation
-    assert dummy.message is message
-
-    # Cleanup
-    del context.ugettext
-    assert not hasattr(context, 'ugettext')
-
-
-def test_ungettext():
-    """
-    Test the `ipalib.request.ungettext` function.
-    """
-    f = request.ungettext
-    context = request.context
-    singular = 'Goose'
-    plural = 'Geese'
-
-    # Test with no context.ungettext:
-    assert not hasattr(context, 'ungettext')
-    assert_equal(f(singular, plural, 1), u'Goose')
-    assert_equal(f(singular, plural, 2), u'Geese')
-
-    # Test singular with dummy context.ungettext
-    assert not hasattr(context, 'ungettext')
-    dummy = dummy_ungettext()
-    context.ungettext = dummy
-    assert f(singular, plural, 1) is dummy.translation_singular
-    assert dummy.singular is singular
-    assert dummy.plural is plural
-    assert dummy.n == 1
-    del context.ungettext
-    assert not hasattr(context, 'ungettext')
-
-    # Test plural with dummy context.ungettext
-    assert not hasattr(context, 'ungettext')
-    dummy = dummy_ungettext()
-    context.ungettext = dummy
-    assert f(singular, plural, 2) is dummy.translation_plural
-    assert dummy.singular is singular
-    assert dummy.plural is plural
-    assert dummy.n == 2
-    del context.ungettext
-    assert not hasattr(context, 'ungettext')
-
-
-def test_set_languages():
-    """
-    Test the `ipalib.request.set_languages` function.
-    """
-    f = request.set_languages
-    c = request.context
-    langs = ('ru', 'en')
-
-    # Test that StandardError is raised if languages has already been set:
-    assert not hasattr(c, 'languages')
-    c.languages = None
-    e = raises(StandardError, f, *langs)
-    assert str(e) == OVERRIDE_ERROR % ('context', 'languages', None, langs)
-    del c.languages
-
-    # Test setting the languages:
-    assert not hasattr(c, 'languages')
-    f(*langs)
-    assert c.languages == langs
-    del c.languages
-
-    # Test setting language from locale.getdefaultlocale()
-    assert not hasattr(c, 'languages')
-    f()
-    assert c.languages == locale.getdefaultlocale()[:1]
-    del c.languages
-    assert not hasattr(c, 'languages')
-
-
-def test_create_translation():
-    """
-    Test the `ipalib.request.create_translation` function.
-    """
-    f = request.create_translation
-    c = request.context
-    t = TempDir()
-
-    # Test that StandardError is raised if ugettext or ungettext:
-    assert not (hasattr(c, 'ugettext') or hasattr(c, 'ungettext'))
-    for name in ('ugettext', 'ungettext'):
-        setattr(c, name, None)
-        e = raises(StandardError, f, 'ipa', None)
-        assert str(e) == (
-            'create_translation() already called in thread %r' %
-            threading.currentThread().getName()
-        )
-        delattr(c, name)
-
-    # Test using default language:
-    assert not hasattr(c, 'ugettext')
-    assert not hasattr(c, 'ungettext')
-    assert not hasattr(c, 'languages')
-    f('ipa', t.path)
-    assert hasattr(c, 'ugettext')
-    assert hasattr(c, 'ungettext')
-    assert c.languages == locale.getdefaultlocale()[:1]
-    del c.ugettext
-    del c.ungettext
-    del c.languages
-
-    # Test using explicit languages:
-    langs = ('de', 'es')
-    f('ipa', t.path, *langs)
-    assert hasattr(c, 'ugettext')
-    assert hasattr(c, 'ungettext')
-    assert c.languages == langs
-    del c.ugettext
-    del c.ungettext
-    del c.languages
-- 
1.7.1.1

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to