diff options
-rw-r--r-- | ipalib/errors.py | 2 | ||||
-rw-r--r-- | ipalib/parameters.py | 2 | ||||
-rw-r--r-- | ipalib/request.py | 40 | ||||
-rw-r--r-- | tests/test_ipalib/test_request.py | 161 |
4 files changed, 2 insertions, 203 deletions
diff --git a/ipalib/errors.py b/ipalib/errors.py index 6883cbdab..e1d85c75d 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 164374e00..daec1d6a9 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 9a11fb9c3..15b26f598 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 548156d2b..000000000 --- a/tests/test_ipalib/test_request.py +++ /dev/null @@ -1,161 +0,0 @@ -# Authors: -# Jason Gerard DeRose <jderose@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 |