From dc54dee622bf9ff95a59530423ac5caa01868373 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Thu, 18 Dec 2008 14:01:59 -0700 Subject: Started work on per-request gettext setup --- tests/test_ipalib/test_request.py | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/test_ipalib/test_request.py (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py new file mode 100644 index 00000000..7ccf9b82 --- /dev/null +++ b/tests/test_ipalib/test_request.py @@ -0,0 +1,56 @@ +# Authors: +# Jason Gerard DeRose +# +# 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; version 2 only +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +""" +Test the `ipalib.request` module. +""" + +import locale +from tests.util import raises +from ipalib.constants import OVERRIDE_ERROR +from ipalib import request + + +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') -- cgit From 9a69adeef001ddd0c55513271cf02eedc0a9aef8 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Thu, 18 Dec 2008 16:58:48 -0700 Subject: Added request.create_translation() function and corresponding unit tests --- tests/test_ipalib/test_request.py | 45 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py index 7ccf9b82..1b9c9e3d 100644 --- a/tests/test_ipalib/test_request.py +++ b/tests/test_ipalib/test_request.py @@ -21,8 +21,9 @@ Test the `ipalib.request` module. """ +import threading import locale -from tests.util import raises +from tests.util import raises, TempDir from ipalib.constants import OVERRIDE_ERROR from ipalib import request @@ -54,3 +55,45 @@ def test_set_languages(): 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 gettext or ngettext: + assert not (hasattr(c, 'gettext') or hasattr(c, 'ngettext')) + for name in 'gettext', 'ngettext': + 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, 'gettext') + assert not hasattr(c, 'ngettext') + assert not hasattr(c, 'languages') + f('ipa', t.path) + assert hasattr(c, 'gettext') + assert hasattr(c, 'ngettext') + assert c.languages == locale.getdefaultlocale()[:1] + del c.gettext + del c.ngettext + del c.languages + + # Test using explicit languages: + langs = ('de', 'es') + f('ipa', t.path, *langs) + assert hasattr(c, 'gettext') + assert hasattr(c, 'ngettext') + assert c.languages == langs + del c.gettext + del c.ngettext + del c.languages -- cgit From 6b055b435f93bf9b63ee9b3b2fdd6f082dacc07b Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Mon, 22 Dec 2008 17:29:11 -0700 Subject: Cleaned up Env.__setattr__() and Env.__setitem__() a bit updated their unit tests --- tests/test_ipalib/test_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py index 1b9c9e3d..5efc0abd 100644 --- a/tests/test_ipalib/test_request.py +++ b/tests/test_ipalib/test_request.py @@ -40,7 +40,7 @@ def test_set_languages(): assert not hasattr(c, 'languages') c.languages = None e = raises(StandardError, f, *langs) - assert str(e) == OVERRIDE_ERROR % ('context.languages', None, langs) + assert str(e) == OVERRIDE_ERROR % ('context', 'languages', None, langs) del c.languages # Test setting the languages: -- cgit From c081ce5460018634fb30249ead2168ebf3a79044 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Sat, 3 Jan 2009 22:03:37 -0700 Subject: request.create_translation() now sets context.ugettext and context.ungettext --- tests/test_ipalib/test_request.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py index 5efc0abd..7096b927 100644 --- a/tests/test_ipalib/test_request.py +++ b/tests/test_ipalib/test_request.py @@ -65,9 +65,9 @@ def test_create_translation(): c = request.context t = TempDir() - # Test that StandardError is raised if gettext or ngettext: - assert not (hasattr(c, 'gettext') or hasattr(c, 'ngettext')) - for name in 'gettext', 'ngettext': + # 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) == ( @@ -77,23 +77,23 @@ def test_create_translation(): delattr(c, name) # Test using default language: - assert not hasattr(c, 'gettext') - assert not hasattr(c, 'ngettext') + assert not hasattr(c, 'ugettext') + assert not hasattr(c, 'ungettext') assert not hasattr(c, 'languages') f('ipa', t.path) - assert hasattr(c, 'gettext') - assert hasattr(c, 'ngettext') + assert hasattr(c, 'ugettext') + assert hasattr(c, 'ungettext') assert c.languages == locale.getdefaultlocale()[:1] - del c.gettext - del c.ngettext + del c.ugettext + del c.ungettext del c.languages # Test using explicit languages: langs = ('de', 'es') f('ipa', t.path, *langs) - assert hasattr(c, 'gettext') - assert hasattr(c, 'ngettext') + assert hasattr(c, 'ugettext') + assert hasattr(c, 'ungettext') assert c.languages == langs - del c.gettext - del c.ngettext + del c.ugettext + del c.ungettext del c.languages -- cgit From c161784973fdedb146a4087d8692b157214c4db0 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Sun, 4 Jan 2009 00:46:21 -0700 Subject: Added request.ugettext() and request.ungettext() functions; added corresponding unit tests --- tests/test_ipalib/test_request.py | 68 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py index 7096b927..62afb140 100644 --- a/tests/test_ipalib/test_request.py +++ b/tests/test_ipalib/test_request.py @@ -23,11 +23,77 @@ Test the `ipalib.request` module. import threading import locale -from tests.util import raises, TempDir +from tests.util import raises, TempDir, DummyUGettext, DummyUNGettext from ipalib.constants import OVERRIDE_ERROR from ipalib import request +def assert_equal(val1, val2): + assert type(val1) is type(val2), '%r != %r' % (val1, val2) + assert val1 == val2, '%r != %r' % (val1, val2) + + +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 = DummyUGettext() + 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 = DummyUNGettext() + 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 = DummyUNGettext() + 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. -- cgit From 2608838ef1f96b0c8d3ff3ed4310eaa63ba73031 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Sun, 4 Jan 2009 03:52:08 -0700 Subject: Quite a bit of work on new public errors and their unit tests --- tests/test_ipalib/test_request.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py index 62afb140..819f2755 100644 --- a/tests/test_ipalib/test_request.py +++ b/tests/test_ipalib/test_request.py @@ -23,16 +23,12 @@ Test the `ipalib.request` module. import threading import locale -from tests.util import raises, TempDir, DummyUGettext, DummyUNGettext +from tests.util import raises, assert_equal +from tests.util import TempDir, DummyUGettext, DummyUNGettext from ipalib.constants import OVERRIDE_ERROR from ipalib import request -def assert_equal(val1, val2): - assert type(val1) is type(val2), '%r != %r' % (val1, val2) - assert val1 == val2, '%r != %r' % (val1, val2) - - def test_ugettext(): """ Test the `ipalib.request.ugettext` function. -- cgit From c121d0064bb7a7bd1a289ae29ceb2dee314c2d2f Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Mon, 5 Jan 2009 01:20:14 -0700 Subject: New Param: Added Param.get_label() method for a way to retrieve translated message at request time --- tests/test_ipalib/test_request.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tests/test_ipalib/test_request.py') diff --git a/tests/test_ipalib/test_request.py b/tests/test_ipalib/test_request.py index 819f2755..f26c270a 100644 --- a/tests/test_ipalib/test_request.py +++ b/tests/test_ipalib/test_request.py @@ -24,7 +24,7 @@ Test the `ipalib.request` module. import threading import locale from tests.util import raises, assert_equal -from tests.util import TempDir, DummyUGettext, DummyUNGettext +from tests.util import TempDir, dummy_ugettext, dummy_ungettext from ipalib.constants import OVERRIDE_ERROR from ipalib import request @@ -43,7 +43,7 @@ def test_ugettext(): # Test with dummy context.ugettext: assert not hasattr(context, 'ugettext') - dummy = DummyUGettext() + dummy = dummy_ugettext() context.ugettext = dummy assert f(message) is dummy.translation assert dummy.message is message @@ -69,7 +69,7 @@ def test_ungettext(): # Test singular with dummy context.ungettext assert not hasattr(context, 'ungettext') - dummy = DummyUNGettext() + dummy = dummy_ungettext() context.ungettext = dummy assert f(singular, plural, 1) is dummy.translation_singular assert dummy.singular is singular @@ -80,7 +80,7 @@ def test_ungettext(): # Test plural with dummy context.ungettext assert not hasattr(context, 'ungettext') - dummy = DummyUNGettext() + dummy = dummy_ungettext() context.ungettext = dummy assert f(singular, plural, 2) is dummy.translation_plural assert dummy.singular is singular -- cgit