ファイルを移動するメソッドをテストする必要があります。ファイル移動操作を実際に実行したくないので、テスト対象のメソッドが次のコマンドを正しく呼び出したことを知る必要があります。shutil.move
shutil.move
メソッドが実際のファイル操作を行わずにパッチを呼び出すことができるようにパッチを適用するための最良の方法は何でしょうか?
私はこのようにしましたが、醜いです。モックライブラリを使用して実行したいと思います。
real_move = ftp2email.shutil.move
move_operations = []
def fake_move(src, dst):
move_operations.append((src, dst))
ftp2email.shutil.move = fake_move
msg_id = '/path/to/message.xml'
self.ch.mark_message(msg_id)
self.assertEqual(move_operations,
[('/path/to/message.xml', '/path/to/archived/message.xml')])
ftp2email.shutil.move = real_move