blog

日常・技術のことを記録する

openの先のreadで例外起こしたいとき(python2.x系)

openの先のreadで例外(exception)起こしたいときのパッチのあてかた
普通にpatchあててside_effect=Exceptionしたらエラーになったから、下記で回避した。
(エラー文コピペ忘れたけどモジュールエラーだったかな?)

openとread両方にpatchあてる方法とやりかた

@patch('__builtin__.open.return_value.__enter__.return_value.read', side_effect=Exception)
@patch('__builtin__.open')
    def test_foo(self,
                open,
                read
                ):

公式はちょっとむずかしかった
unittest.mock --- 入門 — Python 3.7.4 ドキュメント

このサイトの解説がわかりやすかった
[python] まだmockで消耗してるの?mockを理解するための3つのポイント - くろのて