예제 #1
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)
예제 #2
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)
예제 #3
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")
예제 #4
0
 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')
예제 #5
0
 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")
예제 #6
0
 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')
예제 #7
0
 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")
예제 #8
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")