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 7ccf9b828..1b9c9e3d2 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