[Freeipa-devel] [PATCH 68] text unit test should validate using installed mo file
Petr Viktorin
pviktori at redhat.com
Tue Mar 27 17:57:25 UTC 2012
On 03/27/2012 04:58 PM, John Dennis wrote:
[...]
> def test_create_translation():
> f = text.create_translation
> key = ('foo', None)
> @@ -129,6 +45,84 @@ def test_create_translation():
> assert context.__dict__[key] is t
>
>
> +class test_TestLang(object):
> + def setUp(self):
> + self.tmp_dir = None
> + self.saved_lang = None
> +
> + self.lang = 'xh_ZA'
> + self.domain = 'ipa'
> +
> + self.ipa_i18n_dir = os.path.join(os.path.dirname(__file__), '../../install/po')
> + sys.path.insert(0, self.ipa_i18n_dir)
To keep the test isolated, I would save sys.path before modifying it,
wrap the insert and import in a try block, and restore the path in finally.
Or even better, put the common code in an importable package: (most of)
test_i18n.py could very well live under tests/.
> + try:
> + import test_i18n
> + except ImportError, e:
> + raise nose.SkipTest('cannot import test_i18n: %s')
Why would test_i18n not be importable?
> + self.pot_basename = '%s.pot' % self.domain
> + self.po_basename = '%s.po' % self.lang
> + self.mo_basename = '%s.mo' % self.domain
> +
[...]
> +
> + result = test_i18n.create_po(self.pot_file, self.po_file, self.mo_file)
> + if result:
> + raise nose.SkipTest('Unable to create po file "%s"& mo file "%s" from pot file "%s"' %
> + (self.po_file, self.mo_file, self.pot_file))
> +
> + if not file_exists(self.po_file):
> + raise nose.SkipTest('Test po file unavailable, run "make test" in install/po')
> +
> + if not file_exists(self.mo_file):
> + raise nose.SkipTest('Test mo file unavailable, run "make test" in install/po')
Maybe it would be better to skip only if the pot file doesn't exist?
Is there a reason the PO generation should fail?
> + self.po_file_iterate = test_i18n.po_file_iterate
Seeing this, I definitely recommend putting po_file_iterate in an
importable package.
> + def tearDown(self):
> + if self.saved_lang is not None:
> + os.environ['LANG'] = self.saved_lang
> +
> + if self.tmp_dir is not None:
> + shutil.rmtree(self.tmp_dir)
> +
[...]
One thing I missed in the previous patch: Makefile.in has a big comment
near the end that's obsolete now.
--
Petr³
More information about the Freeipa-devel
mailing list