デフォルトでは、testmod がテストを行うべきドキュメン テーション文字列を見つけるたびに、M のグローバルを コピーして 使うため、モジュール上でテストを動作させても モジュールの実際のグローバル 変数を変更することはありません。このため、M 内でテストを 行った際に痕跡が残り (left behind crumbs)、偶発的に別のテストが 作動することはないはずです。すなわち、例では M 内の トップレベルで定義されたどんな名前も、ドキュメンテーション文字列 が動作する以前に定義された名前も自由に使うことができます。
testmod() に globs=your_dict
を渡すことで、
自前の辞書を実行コンテキストとして使うこともできます。
おそらくこの値は M.__dict__
を他の import されたモジュール
由来のグローバル変数とマージしたものになるでしょう。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。