2024-09-27 –, 4F Track3
unittestで使われるpatchを正しくつかうために必要な、名前空間の概念について理解を深めます
Pythonの公式ドキュメントのpatchの説明の冒頭に次のように書かれています。
注釈 重要なのは正しい名前空間に対して patch することです。 where to patch セクションを参照してください。
そして「どこにpatchするか」というセクションには次のような説明があります。
基本的な原則は、オブジェクトが ルックアップ されるところにパッチすることです。その場所はオブジェクトが定義されたところとは限りません。
これを理解するためにはpythonの名前空間、スコープといった概念を理解する必要があります。
- 名前空間とスコープ
- import 文の働き
- import foo と from foo import barの違い
- どこにpatchするのか?
等について公式ドキュメントをベースに説明します。
その昔、unittestの中でpatchを使ったのだが、同僚から、使い方が間違っているという指摘を受けた。
公式ドキュメントの patch のセクションの where to patchを読んだが理解できなかった。名前空間に対する理解が無かったからだ。同様の困難を再生産しないように、名前空間について説明したい。
patchの正しい使い方
名前空間の理解
import foo と from foo import bar の違い
Where to patchの理解
python の unittest で patch を使ったことがある。使い方で悩んだことがある。
Audience experiment –Intermediate
Language of presentation –日本語
Language of presentation material –日本語
Python Djangoプログラマー