出力に連結された後に各ファイルを削除して、順次連結する必要があるファイルがたくさんあるユースケースがあります。コードは次のようになります。
def compile(self):
with open("output.file", "wb") as outfile:
for part in sorted(self.parts):
with open(part, "rb") as infile:
for line in infile:
outfile.write(line)
os.remove(part)
# do other logic ...
このコードを適切にテストする方法を思いつくのに苦労しています。私はそれを確立したい:
- パーツはソートされ、ソートされた順序でループされます。
- 各入力ファイルは 1 行ずつ読み取られ、出力ファイルに書き込まれます。
- 各入力ファイルは使い果たされた後に削除されます。
私の主な問題は、ファイル オブジェクトをモックすることです。Python のmock
ライブラリを使用していますが、どこにパッチを当て、どのようにパッチを適用すればよいかわかりません。ファイル オブジェクトにパッチを適用して、すべてが適切に書き込まれたことを確認するにはどうすればよいですか?