Commit 9549a3e3 authored by Robert Collins's avatar Robert Collins

Issue #26807: mock_open 'files' no longer error on readline at end of file.

Patch from Yolanda Robla.
parent 33a8fb99
...@@ -2323,6 +2323,8 @@ def mock_open(mock=None, read_data=''): ...@@ -2323,6 +2323,8 @@ def mock_open(mock=None, read_data=''):
yield handle.readline.return_value yield handle.readline.return_value
for line in _state[0]: for line in _state[0]:
yield line yield line
while True:
yield type(read_data)()
global file_spec global file_spec
......
...@@ -1419,6 +1419,18 @@ class MockTest(unittest.TestCase): ...@@ -1419,6 +1419,18 @@ class MockTest(unittest.TestCase):
self.assertEqual('abc', first) self.assertEqual('abc', first)
self.assertEqual('abc', second) self.assertEqual('abc', second)
def test_mock_open_after_eof(self):
# read, readline and readlines should work after end of file.
_open = mock.mock_open(read_data='foo')
h = _open('bar')
h.read()
self.assertEqual('', h.read())
self.assertEqual('', h.read())
self.assertEqual('', h.readline())
self.assertEqual('', h.readline())
self.assertEqual([], h.readlines())
self.assertEqual([], h.readlines())
def test_mock_parents(self): def test_mock_parents(self):
for Klass in Mock, MagicMock: for Klass in Mock, MagicMock:
m = Klass() m = Klass()
......
...@@ -1223,6 +1223,7 @@ Ben Roberts ...@@ -1223,6 +1223,7 @@ Ben Roberts
Mark Roberts Mark Roberts
Andy Robinson Andy Robinson
Jim Robinson Jim Robinson
Yolanda Robla
Daniel Rocco Daniel Rocco
Mark Roddy Mark Roddy
Kevin Rodgers Kevin Rodgers
......
...@@ -124,6 +124,9 @@ Library ...@@ -124,6 +124,9 @@ Library
- Issue #22274: In the subprocess module, allow stderr to be redirected to - Issue #22274: In the subprocess module, allow stderr to be redirected to
stdout even when stdout is not redirected. Patch by Akira Li. stdout even when stdout is not redirected. Patch by Akira Li.
- Issue #26807: mock_open 'files' no longer error on readline at end of file.
Patch from Yolanda Robla.
- Issue #25745: Fixed leaking a userptr in curses panel destructor. - Issue #25745: Fixed leaking a userptr in curses panel destructor.
- Issue #26977: Removed unnecessary, and ignored, call to sum of squares helper - Issue #26977: Removed unnecessary, and ignored, call to sum of squares helper
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment