docutilsのUnitTestを試す
2004年8月16日15:53
zope
reStructuredTextで落ちる理由

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

やはり "ja" モジュールを docutils本家 に提供しないと。

ふかまち 2006年3月17日22:41

docutils-0.4 には ja.py が含まれるようになってます。

owa #e8faefa 2006年3月19日1:29

おひさしぶりです^^
Release4.0 確認しました。 この記事 は見た覚えがあるのですが、無事 採用 されたのですね。
ありがたや。 感謝こんなブログ 書かれて居られる御方のようでした。爪の垢でも頂かないといけません。