f.read()
expected_calls = [call('foo'), call().__enter__(), call().read(),
- call().__exit__(None, None, None)]
+ call().__exit__(None, None, None), call().close()]
self.assertEqual(mock.mock_calls, expected_calls)
self.assertIs(f, handle)
expected_calls = [
call('foo'), call().__enter__(), call().read(),
- call().__exit__(None, None, None),
+ call().__exit__(None, None, None), call().close(),
call('bar'), call().__enter__(), call().read(),
- call().__exit__(None, None, None)]
+ call().__exit__(None, None, None), call().close()]
self.assertEqual(mock.mock_calls, expected_calls)
def test_explicit_mock(self):
return handle.readline.return_value
return next(_state[0])
+ def _exit_side_effect(exctype, excinst, exctb):
+ handle.close()
+
global file_spec
if file_spec is None:
import _io
handle.readlines.side_effect = _readlines_side_effect
handle.__iter__.side_effect = _iter_side_effect
handle.__next__.side_effect = _next_side_effect
+ handle.__exit__.side_effect = _exit_side_effect
def reset_data(*args, **kwargs):
_state[0] = _to_stream(read_data)