class Edgecases(unittest.TestCase): def setUp(self): self.f = TextReader(PREFIX + "/LICENSE.txt",linesep=TextReader.UNIX) def testPeekPastEOF(self): self.assertRaises(IOError, self.f.peekline, 4711) def testPrevPastBOF(self): self.assertRaises(IOError, self.f.prevline, 4711) def testReadPastEOF(self): self.assertEqual(len(self.f.read(1)), 1) self.f.read(sys.maxsize) # read past end of file - no license text is THAT big self.assertNotEqual(self.f.currpos, sys.maxsize+1) self.assertEqual(len(self.f.read(1)), 0) # no more to read self.assertEqual(len(self.f.readline()), 0) self.f.seek(0) def testReadlineUntilEOF(self): for line in self.f: prev = line pass self.assertEqual(prev, 'OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.') self.assertEqual(self.f.readline(), '') def testSearchInVain(self): self.assertRaises(IOError, self.f.cue, 'I am a little teapot') self.f.seek(0)
class Edgecases(unittest.TestCase): def setUp(self): self.f = TextReader(PREFIX + "/LICENSE.txt", linesep=TextReader.UNIX) def testPeekPastEOF(self): self.assertRaises(IOError, self.f.peekline, 4711) def testPrevPastBOF(self): self.assertRaises(IOError, self.f.prevline, 4711) def testReadPastEOF(self): self.assertEqual(len(self.f.read(1)), 1) self.f.read( sys.maxsize) # read past end of file - no license text is THAT big self.assertNotEqual(self.f.currpos, sys.maxsize + 1) self.assertEqual(len(self.f.read(1)), 0) # no more to read self.assertEqual(len(self.f.readline()), 0) self.f.seek(0) def testReadlineUntilEOF(self): for line in self.f: prev = line pass self.assertEqual( prev, 'OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.' ) self.assertEqual(self.f.readline(), '') def testSearchInVain(self): self.assertRaises(IOError, self.f.cue, 'I am a little teapot') self.f.seek(0)
def testUTF(self): f = TextReader(PREFIX + "/test/test_doctest4.txt", "utf-8") f.cue("u'f") self.assertEqual(f.read(5), "u'f\u00f6\u00f6") f.cue("u'b") self.assertEqual(f.read(5), "u'b\u0105r")
def testKOI8(self): f = TextReader(PREFIX + "/test/test_pep263.py", "koi8-r") f.cue('u"') self.assertEqual(f.read(7), 'u"\u041f\u0438\u0442\u043e\u043d')
def testISO(self): f = TextReader(PREFIX + "/test/test_shlex.py", "iso-8859-1") f.cue(';|-|)|') f.readline() self.assertEqual(f.read(5), "\u00e1\u00e9\u00ed\u00f3\u00fa")