168
class NullTranslationsTestCase(unittest.TestCase):
171
write_mo(fp, Catalog(locale='de'))
173
self.translations = support.Translations(fileobj=fp)
174
self.null_translations = support.NullTranslations(fp=fp)
176
def method_names(self):
177
return [name for name in dir(self.translations) if 'gettext' in name]
179
def test_same_methods(self):
180
for name in self.method_names():
181
if not hasattr(self.null_translations, name):
182
self.fail('NullTranslations does not provide method %r' % name)
184
def test_method_signature_compatibility(self):
185
for name in self.method_names():
186
translations_method = getattr(self.translations, name)
187
null_method = getattr(self.null_translations, name)
188
signature = inspect.getargspec
189
self.assertEqual(signature(translations_method),
190
signature(null_method))
192
def test_same_return_values(self):
194
'message': u'foo', 'domain': u'domain', 'context': 'tests',
195
'singular': u'bar', 'plural': u'baz', 'num': 1,
196
'msgid1': u'bar', 'msgid2': u'baz', 'n': 1,
198
for name in self.method_names():
199
method = getattr(self.translations, name)
200
null_method = getattr(self.null_translations, name)
201
signature = inspect.getargspec(method)
202
parameter_names = [name for name in signature.args if name != 'self']
203
values = [data[name] for name in parameter_names]
204
self.assertEqual(method(*values), null_method(*values))
167
207
class LazyProxyTestCase(unittest.TestCase):
168
208
def test_proxy_caches_result_of_function_call(self):
188
228
suite = unittest.TestSuite()
189
229
suite.addTest(doctest.DocTestSuite(support))
190
230
suite.addTest(unittest.makeSuite(TranslationsTestCase, 'test'))
231
suite.addTest(unittest.makeSuite(NullTranslationsTestCase, 'test'))
191
232
suite.addTest(unittest.makeSuite(LazyProxyTestCase, 'test'))