Fix i18n related failures in unit tests.

This commit is contained in:
Pavel Zuna
2011-02-15 15:20:51 -05:00
committed by Rob Crittenden
parent f3de95ce99
commit 18dda28c56
5 changed files with 29 additions and 57 deletions

View File

@@ -23,8 +23,8 @@ Test the `ipalib.errors` module.
import re import re
import inspect import inspect
from tests.util import assert_equal, raises, dummy_ugettext from tests.util import assert_equal, raises
from ipalib import errors, request from ipalib import errors, text
from ipalib.constants import TYPE_ERROR from ipalib.constants import TYPE_ERROR
@@ -229,7 +229,6 @@ class test_PublicError(PublicExceptionTester):
""" """
Test the `ipalib.errors.PublicError.__init__` method. Test the `ipalib.errors.PublicError.__init__` method.
""" """
context = request.context
message = u'The translated, interpolated message' message = u'The translated, interpolated message'
format = 'key=%(key1)r and key2=%(key2)r' format = 'key=%(key1)r and key2=%(key2)r'
uformat = u'Translated key=%(key1)r and key2=%(key2)r' uformat = u'Translated key=%(key1)r and key2=%(key2)r'
@@ -237,25 +236,16 @@ class test_PublicError(PublicExceptionTester):
val2 = 'Value 2' val2 = 'Value 2'
kw = dict(key1=val1, key2=val2) kw = dict(key1=val1, key2=val2)
assert not hasattr(context, 'ugettext')
# Test with format=str, message=None # Test with format=str, message=None
dummy = dummy_ugettext(uformat)
context.ugettext = dummy
inst = self.klass(format, **kw) inst = self.klass(format, **kw)
assert dummy.message is format # Means ugettext() called
assert inst.format is format assert inst.format is format
assert_equal(inst.message, format % kw) assert_equal(inst.message, format % kw)
assert_equal(inst.strerror, uformat % kw)
assert inst.forwarded is False assert inst.forwarded is False
assert inst.key1 is val1 assert inst.key1 is val1
assert inst.key2 is val2 assert inst.key2 is val2
# Test with format=None, message=unicode # Test with format=None, message=unicode
dummy = dummy_ugettext(uformat)
context.ugettext = dummy
inst = self.klass(message=message, **kw) inst = self.klass(message=message, **kw)
assert not hasattr(dummy, 'message') # Means ugettext() not called
assert inst.format is None assert inst.format is None
assert inst.message is message assert inst.message is message
assert inst.strerror is message assert inst.strerror is message
@@ -277,24 +267,17 @@ class test_PublicError(PublicExceptionTester):
# Test via PublicExceptionTester.new() # Test via PublicExceptionTester.new()
# Test with format=str, message=None # Test with format=str, message=None
dummy = dummy_ugettext(uformat)
context.ugettext = dummy
inst = self.new(format, **kw) inst = self.new(format, **kw)
assert isinstance(inst, self.klass) assert isinstance(inst, self.klass)
assert dummy.message is format # Means ugettext() called
assert inst.format is format assert inst.format is format
assert_equal(inst.message, format % kw) assert_equal(inst.message, format % kw)
assert_equal(inst.strerror, uformat % kw)
assert inst.forwarded is False assert inst.forwarded is False
assert inst.key1 is val1 assert inst.key1 is val1
assert inst.key2 is val2 assert inst.key2 is val2
# Test with format=None, message=unicode # Test with format=None, message=unicode
dummy = dummy_ugettext(uformat)
context.ugettext = dummy
inst = self.new(message=message, **kw) inst = self.new(message=message, **kw)
assert isinstance(inst, self.klass) assert isinstance(inst, self.klass)
assert not hasattr(dummy, 'message') # Means ugettext() not called
assert inst.format is None assert inst.format is None
assert inst.message is message assert inst.message is message
assert inst.strerror is message assert inst.strerror is message
@@ -311,9 +294,6 @@ class test_PublicError(PublicExceptionTester):
uformat = u'Translated %(true)r %(text)r %(number)r' uformat = u'Translated %(true)r %(text)r %(number)r'
kw = dict(true=True, text='Hello!', number=18) kw = dict(true=True, text='Hello!', number=18)
dummy = dummy_ugettext(uformat)
context.ugettext = dummy
# Test with format=str, message=None # Test with format=str, message=None
e = raises(ValueError, subclass, format, **kw) e = raises(ValueError, subclass, format, **kw)
assert str(e) == 'non-generic %r needs format=None; got format=%r' % ( assert str(e) == 'non-generic %r needs format=None; got format=%r' % (
@@ -321,20 +301,15 @@ class test_PublicError(PublicExceptionTester):
# Test with format=None, message=None: # Test with format=None, message=None:
inst = subclass(**kw) inst = subclass(**kw)
assert dummy.message is subclass.format # Means ugettext() called
assert inst.format is subclass.format assert inst.format is subclass.format
assert_equal(inst.message, subclass.format % kw) assert_equal(inst.message, subclass.format % kw)
assert_equal(inst.strerror, uformat % kw)
assert inst.forwarded is False assert inst.forwarded is False
assert inst.true is True assert inst.true is True
assert inst.text is kw['text'] assert inst.text is kw['text']
assert inst.number is kw['number'] assert inst.number is kw['number']
# Test with format=None, message=unicode: # Test with format=None, message=unicode:
dummy = dummy_ugettext(uformat)
context.ugettext = dummy
inst = subclass(message=message, **kw) inst = subclass(message=message, **kw)
assert not hasattr(dummy, 'message') # Means ugettext() not called
assert inst.format is subclass.format assert inst.format is subclass.format
assert inst.message is message assert inst.message is message
assert inst.strerror is message assert inst.strerror is message
@@ -342,7 +317,6 @@ class test_PublicError(PublicExceptionTester):
assert inst.true is True assert inst.true is True
assert inst.text is kw['text'] assert inst.text is kw['text']
assert inst.number is kw['number'] assert inst.number is kw['number']
del context.ugettext
def test_public_errors(): def test_public_errors():

View File

@@ -1091,4 +1091,4 @@ class test_Property(ClassChecker):
param = o.param param = o.param
assert isinstance(param, parameters.Str) assert isinstance(param, parameters.Str)
assert param.name == 'givenname' assert param.name == 'givenname'
assert param.doc == 'User first name' assert unicode(param.doc) == u'User first name'

View File

@@ -29,7 +29,7 @@ from inspect import isclass
from tests.util import raises, ClassChecker, read_only from tests.util import raises, ClassChecker, read_only
from tests.util import dummy_ugettext, assert_equal from tests.util import dummy_ugettext, assert_equal
from tests.data import binary_bytes, utf8_bytes, unicode_str from tests.data import binary_bytes, utf8_bytes, unicode_str
from ipalib import parameters, request, errors, config from ipalib import parameters, text, errors, config
from ipalib.constants import TYPE_ERROR, CALLABLE_ERROR, NULLS from ipalib.constants import TYPE_ERROR, CALLABLE_ERROR, NULLS
from ipalib.errors import ValidationError from ipalib.errors import ValidationError
from ipalib import _ from ipalib import _
@@ -482,8 +482,8 @@ class test_Param(ClassChecker):
o = Example('example', pass1, pass2) o = Example('example', pass1, pass2)
assert o.multivalue is False assert o.multivalue is False
assert o.validate(11, 'cli') is None assert o.validate(11, 'cli') is None
assert pass1.calls == [(request.ugettext, 11)] assert pass1.calls == [(text.ugettext, 11)]
assert pass2.calls == [(request.ugettext, 11)] assert pass2.calls == [(text.ugettext, 11)]
pass1.reset() pass1.reset()
pass2.reset() pass2.reset()
o = Example('example', pass1, pass2, fail) o = Example('example', pass1, pass2, fail)
@@ -491,9 +491,9 @@ class test_Param(ClassChecker):
assert e.name == 'example' assert e.name == 'example'
assert e.error == u'no good' assert e.error == u'no good'
assert e.index is None assert e.index is None
assert pass1.calls == [(request.ugettext, 42)] assert pass1.calls == [(text.ugettext, 42)]
assert pass2.calls == [(request.ugettext, 42)] assert pass2.calls == [(text.ugettext, 42)]
assert fail.calls == [(request.ugettext, 42)] assert fail.calls == [(text.ugettext, 42)]
# Test with some rules and multivalue=True # Test with some rules and multivalue=True
pass1 = DummyRule() pass1 = DummyRule()
@@ -503,12 +503,12 @@ class test_Param(ClassChecker):
assert o.multivalue is True assert o.multivalue is True
assert o.validate((3, 9), 'cli') is None assert o.validate((3, 9), 'cli') is None
assert pass1.calls == [ assert pass1.calls == [
(request.ugettext, 3), (text.ugettext, 3),
(request.ugettext, 9), (text.ugettext, 9),
] ]
assert pass2.calls == [ assert pass2.calls == [
(request.ugettext, 3), (text.ugettext, 3),
(request.ugettext, 9), (text.ugettext, 9),
] ]
pass1.reset() pass1.reset()
pass2.reset() pass2.reset()
@@ -518,9 +518,9 @@ class test_Param(ClassChecker):
assert e.name == 'multi_example' assert e.name == 'multi_example'
assert e.error == u'this one is not good' assert e.error == u'this one is not good'
assert e.index == 0 assert e.index == 0
assert pass1.calls == [(request.ugettext, 3)] assert pass1.calls == [(text.ugettext, 3)]
assert pass2.calls == [(request.ugettext, 3)] assert pass2.calls == [(text.ugettext, 3)]
assert fail.calls == [(request.ugettext, 3)] assert fail.calls == [(text.ugettext, 3)]
def test_validate_scalar(self): def test_validate_scalar(self):
""" """
@@ -543,8 +543,8 @@ class test_Param(ClassChecker):
assert o._validate_scalar(True, index=None) is None assert o._validate_scalar(True, index=None) is None
assert o._validate_scalar(False, index=None) is None assert o._validate_scalar(False, index=None) is None
assert okay.calls == [ assert okay.calls == [
(request.ugettext, True), (text.ugettext, True),
(request.ugettext, False), (text.ugettext, False),
] ]
# Test with a failing rule: # Test with a failing rule:
@@ -560,12 +560,12 @@ class test_Param(ClassChecker):
assert e.error == u'this describes the error' assert e.error == u'this describes the error'
assert e.index == 2 assert e.index == 2
assert okay.calls == [ assert okay.calls == [
(request.ugettext, True), (text.ugettext, True),
(request.ugettext, False), (text.ugettext, False),
] ]
assert fail.calls == [ assert fail.calls == [
(request.ugettext, True), (text.ugettext, True),
(request.ugettext, False), (text.ugettext, False),
] ]
def test_get_default(self): def test_get_default(self):
@@ -927,17 +927,17 @@ class test_Str(ClassChecker):
e = raises(errors.ConversionError, mthd, value) e = raises(errors.ConversionError, mthd, value)
assert e.name == 'my_str' assert e.name == 'my_str'
assert e.index is None assert e.index is None
assert_equal(e.error, u'must be Unicode text') assert_equal(unicode(e.error), u'must be Unicode text')
e = raises(errors.ConversionError, mthd, value, index=18) e = raises(errors.ConversionError, mthd, value, index=18)
assert e.name == 'my_str' assert e.name == 'my_str'
assert e.index == 18 assert e.index == 18
assert_equal(e.error, u'must be Unicode text') assert_equal(unicode(e.error), u'must be Unicode text')
bad = [(u'Hello',), [42.3]] bad = [(u'Hello',), [42.3]]
for value in bad: for value in bad:
e = raises(errors.ConversionError, mthd, value) e = raises(errors.ConversionError, mthd, value)
assert e.name == 'my_str' assert e.name == 'my_str'
assert e.index is None assert e.index is None
assert_equal(e.error, u'Only one value is allowed') assert_equal(unicode(e.error), u'Only one value is allowed')
assert o.convert(None) is None assert o.convert(None) is None
def test_rule_minlength(self): def test_rule_minlength(self):

View File

@@ -25,7 +25,7 @@ import inspect
from tests.util import raises, no_set, no_del, read_only from tests.util import raises, no_set, no_del, read_only
from tests.util import getitem, setitem, delitem from tests.util import getitem, setitem, delitem
from tests.util import ClassChecker, create_test_api from tests.util import ClassChecker, create_test_api
from ipalib import plugable, errors from ipalib import plugable, errors, text
class test_SetProxy(ClassChecker): class test_SetProxy(ClassChecker):
@@ -219,7 +219,7 @@ class test_Plugin(ClassChecker):
assert o.name == 'Plugin' assert o.name == 'Plugin'
assert o.module == 'ipalib.plugable' assert o.module == 'ipalib.plugable'
assert o.fullname == 'ipalib.plugable.Plugin' assert o.fullname == 'ipalib.plugable.Plugin'
assert o.doc == inspect.getdoc(self.cls) assert isinstance(o.doc, text.Gettext)
class some_subclass(self.cls): class some_subclass(self.cls):
""" """
Do sub-classy things. Do sub-classy things.
@@ -234,12 +234,11 @@ class test_Plugin(ClassChecker):
assert o.name == 'some_subclass' assert o.name == 'some_subclass'
assert o.module == __name__ assert o.module == __name__
assert o.fullname == '%s.some_subclass' % __name__ assert o.fullname == '%s.some_subclass' % __name__
assert o.doc == inspect.getdoc(some_subclass)
assert o.summary == 'Do sub-classy things.' assert o.summary == 'Do sub-classy things.'
assert isinstance(o.doc, text.Gettext)
class another_subclass(self.cls): class another_subclass(self.cls):
pass pass
o = another_subclass() o = another_subclass()
assert o.doc is None
assert o.summary == '<%s>' % o.fullname assert o.summary == '<%s>' % o.fullname
# Test that Plugin makes sure the subclass hasn't defined attributes # Test that Plugin makes sure the subclass hasn't defined attributes

View File

@@ -80,7 +80,7 @@ def test_gettext():
# language not associated with any real language, but the # language not associated with any real language, but the
# setlocale function demands the locale be a valid known locale, # setlocale function demands the locale be a valid known locale,
# U.S. English is a reasonable choice. # U.S. English is a reasonable choice.
request.set_languages('en_US.UTF-8') # request.set_languages('en_US.UTF-8')
# Tell gettext that our domain is 'ipa', that locale_dir is # Tell gettext that our domain is 'ipa', that locale_dir is
# 'test_locale' (i.e. where to look for the message catalog) # 'test_locale' (i.e. where to look for the message catalog)
@@ -117,7 +117,6 @@ def test_gettext():
# Reset the language and assure we don't get the test values # Reset the language and assure we don't get the test values
context.__dict__.clear() context.__dict__.clear()
request.set_languages('fr_FR')
translated = unicode(localized) translated = unicode(localized)
assert(translated[0] != prefix) assert(translated[0] != prefix)