Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(4992)

Unified Diff: Lib/test/test_file.py

Issue 1706039: Added clearerr() to clear EOF state
Patch Set: Created 2 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Objects/fileobject.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Lib/test/test_file.py
===================================================================
--- Lib/test/test_file.py (revision 67917)
+++ Lib/test/test_file.py (working copy)
@@ -547,7 +547,48 @@
finally:
sys.stdout = save_stdout
+ def testReadAfterEOF(self):
+ # Verify read works after hitting EOF
+ # Prepare the testfile
+ teststring = "spam"
+ bag = open(TESTFN, "w")
+ bag.write(teststring)
+ bag.close()
+
+ # And buf for readinto
+ buf = array("c", " "*len(teststring))
+
+ # Test for appropriate errors mixing read* and iteration
+ methods = [("readline", ()), ("read",()), ("readlines", ()),
+ ("readinto", (buf,))]
+
+ for attr in 'r', 'rU':
+ for methodname, args in methods:
+ f = open(TESTFN, "rU")
+ f.seek(0, 2)
+ meth = getattr(f, methodname)
+ meth(*args) # hits EOF
+ try:
+ # Writing the same file with another file descriptor
+ append = open(TESTFN, "a+")
+ append.write(teststring)
+ append.flush()
+ append.close()
+ try:
+ meth = getattr(f, methodname)
+ if methodname == 'readlines':
+ self.failUnlessEqual(meth(*args), [teststring])
+ elif methodname == 'readinto':
+ meth(*args)
+ self.failUnlessEqual(buf.tostring(), teststring)
+ else:
+ self.failUnlessEqual(meth(*args), teststring)
+ except ValueError:
+ self.fail("read* failed after hitting EOF")
+ finally:
+ f.close()
+
def test_main():
# Historically, these tests have been sloppy about removing TESTFN.
# So get rid of it no matter what.
« no previous file with comments | « no previous file | Objects/fileobject.c » ('j') | no next file with comments »

RSS Feeds Recent Issues | This issue
This is Rietveld cbc36f91f3f7