Pythonで、moxユニットテストライブラリを使用してwithステートメントで作成されたオブジェクトをモックするにはどうすればよいですか?
コード
class MyCode:
def generate_gzip_file(self):
with gzip.GzipFile('file_name.txt.gz','wb') as f:
f.write('data')
単体テスト
class MyCodeTest(unittest.TestCase):
def test_generate_gzip_file(self):
mox = mox.Mox()
mock_gzip_file = self.mox.CreateMock(gzip.GzipFile)
mox.StubOutWithMock(gzip, 'GzipFile')
gzip.GzipFile('file_name.txt.gz','wb').AndReturn(mock_file)
mock_gzip_file.write('data')
mox.ReplayAll()
MyCode().generate_gzip_file()
mox.VerifyAll()
AttributeError: __exit__
オンラインでエラーが発生します
with gzip.GzipFile('file_name.txt.gz','wb') as f: