docutilsのUnitTestを試す
reStructuredText で落ちるのは、 docutils に ja.py ファイルが無いためであることの再確認。
docutils-0.3.5.tar.gz をダウンロードして試してみました。 PYTHONPATH には zope のパスを指定します。
$ tar xvzf docutils-0.3.5.tar.gz $ cd docutils-0.3.5/test $ export PYTHONPATH="/usr/lib/zope/lib/python" $ python test_language.py en .... ---------------------------------------------------------------------- Ran 4 tests in 0.056s OK
このように language code に "en" を指定すればユニットテストは通りますが、"ja" を指定した場合エラーになります。
$ python test_language.py ja FFFF ====================================================================== FAIL: test_language.py: ja.py; test_labels (__main__.LanguageTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_language.py", line 99, in test_labels self.fail('No docutils.languages.%s module.' % self.language) File "/usr/lib/python2.3/unittest.py", line 270, in fail raise self.failureException, msg AssertionError: No docutils.languages.ja module. . . .
"docutils-0.3.5/docs/howto/i18n.txt" を読んでみると、Locale の設定で "en" とか "fr" などの切替えはできるようですが、"ja" などの場合、モジュールが入ってないのでエラーになる (デフォルトに置き換えたりしない) ようです。 新しいモジュールが必要なら 「"en.py" をコピーして作れ」と云うことらしい。
と云うことで "ja" モジュールを二個作ります。
$ su # cd /usr/lib/zope/lib/python/docutils/languages # cp en.py ja.py # cd ../parsers/rst/languages # cp en.py ja.py
そうすれば、ユニットテストも通ります。
$ python test_language.py ja .... ---------------------------------------------------------------------- Ran 4 tests in 0.056s OKモジュールが無い場合デフォルトモジュール (en とか) を読み込んでくれてもよさそうですが、あえてエラーにしてあるのかも (そのほうがモジュールの提供がはかどる?) と、いけない想像をしてしまうのはソースも読まずにいけません;;
やはり "ja" モジュールを docutils本家 に提供しないと。