基本 API は、 doctest を使いやすくするための簡単なラッパであり、 柔軟性があってほとんどのユーザの必要を満たしています; とはいえ、 もっとテストをきめ細かに制御したい場合や、 doctest の機能を 拡張したい場合、拡張 API (advanced API) を使わねばなりません。
拡張 API は、doctest ケースから抽出した対話モードでの例題を 記憶するための二つのコンテナクラスを中心に構成されています:
その他に、 doctest の例題を検索、パーズ、実行、チェックするための 処理クラスが以下のように定義されています:
これらの処理クラスの関係を図にまとめると、以下のようになります:
list of: +------+ +---------+ |module| --DocTestFinder-> | DocTest | --DocTestRunner-> results +------+ | ^ +---------+ | ^ (printed) | | | Example | | | v | | ... | v | DocTestParser | Example | OutputChecker +---------+