5.2.9.3 DocTestFinder オブジェクト

クラス DocTestFinder( [verbose][, parser][, recurse][, exclude_empty])
与えられたオブジェクトについて、その docstring か、そのオブジェクトに 入っているオブジェクトの docstring からDocTest を抽出する処理 クラスです。 現在のところ、モジュール、関数、クラス、メソッド、静的メソッド、 クラスメソッド、プロパティからDocTest を抽出できます。

オプション引数 verbose を使うと、抽出処理の対象となるオブジェクト を表示できます。デフォルトは False (出力をおこなわない) です。

オプション引数 parser には、 docstring から DocTest を 抽出するのに使うDocTestParser オブジェクト (またはその代替となるオブジェクト) を指定します。

オプション引数 recurse が偽の場合、DocTestFinder.find() は与えられたオブジェクトだけを調べ、そのオブジェクトに入っている他の オブジェクトを調べません。

オプション引数 exclude_empty が偽の場合、DocTestFinder.find() は空の docstring を持つオブジェクトもテスト対象に含めます。

バージョン 2.4 で 新たに追加 された仕様です。

DocTestFinder では以下のメソッドを定義しています:

find( obj[, name][, module][, globs][, extraglobs])
obj または obj 内に入っているオブジェクトの docstring 中で 定義されているDocTest のリストを返します。

オプション引数 name には、オブジェクトの名前を指定します。 この名前は、関数が返す DocTest の名前になります。 name を指定しない場合、obj.__name__ を使います。

オプションのパラメタ module は、指定したオブジェクトを 収めているモジュールを指定します。module を指定しないか、 None を指定した場合には、正しいモジュールを自動的に 決定しようと試みます。オブジェクトのモジュールは以下のような役割を 果たします:

moduleFalse の場合には、モジュールの検索を試みません。 これは正確さを欠くような使い方で、通常 doctest 自体のテストにしか つかいません。 moduleFalse の場合、 またはmoduleNone で自動的に的確なモジュールを見つけ出せない場合には、全てのオブジェクトは (non-existent) モジュールに属するとみなされ、そのオブジェクト内の 全てのオブジェクトに対して (再帰的に) doctest の検索をおこないます。

DocTest のグローバル変数は、globsextraglobs を合わせたもの (extraglobs 内のバインドがglobs 内の バインドを上書きする) になります。各々の DocTest に対して、 グローバル変数を表す辞書の新たな浅いコピーを生成します。 globs を指定しない場合に使われるのデフォルト値は、 モジュールを指定していればそのモジュールの __dict__ になり、 指定していなければ{} になります。extraglobs を指定しない場合、 デフォルトの値は{} になります。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。