diff -r da0ca7b1351f Lib/unittest/mock.py --- a/Lib/unittest/mock.py Thu Jan 29 17:40:59 2015 +0100 +++ b/Lib/unittest/mock.py Thu Jan 29 19:24:30 2015 +0100 @@ -2309,6 +2309,12 @@ for line in _data: yield line + def _iter_side_effect(): + if handle.__iter__.return_value is not None: + while True: + yield handle.__iter__.return_value + for line in _data: + yield line global file_spec if file_spec is None: @@ -2327,10 +2333,14 @@ handle.read.return_value = None handle.readline.return_value = None handle.readlines.return_value = None + handle.__iter__.return_value = None + handle.__next__.return_value = None handle.read.side_effect = _read_side_effect handle.readline.side_effect = _readline_side_effect() handle.readlines.side_effect = _readlines_side_effect + handle.__next__.side_effect = _iter_side_effect() + handle.__iter__.side_effect = _iter_side_effect mock.return_value = handle return mock