blob: 0ba4adcb281f9faad216af5b4de1ace4f46316bb [file] [log] [blame]
Barry Warsaw04f357c2002-07-23 19:04:11 +00001from test.test_support import verbose
Guido van Rossum07b78a82001-01-09 21:47:44 +00002
Guido van Rossum8ee52432002-08-06 17:14:04 +00003import warnings
4warnings.filterwarnings('ignore', "xreadlines", DeprecationWarning)
5
Guido van Rossum07b78a82001-01-09 21:47:44 +00006class XReader:
Tim Petersd2bf3b72001-01-18 02:22:22 +00007 def __init__(self):
8 self.count = 5
Guido van Rossum07b78a82001-01-09 21:47:44 +00009
Tim Petersd2bf3b72001-01-18 02:22:22 +000010 def readlines(self, sizehint = None):
11 self.count = self.count - 1
12 return map(lambda x: "%d\n" % x, range(self.count))
Guido van Rossum07b78a82001-01-09 21:47:44 +000013
14class Null: pass
15
16import xreadlines
17
18
19lineno = 0
20
21try:
Tim Petersd2bf3b72001-01-18 02:22:22 +000022 xreadlines.xreadlines(Null())[0]
Guido van Rossum07b78a82001-01-09 21:47:44 +000023except AttributeError, detail:
Tim Petersd2bf3b72001-01-18 02:22:22 +000024 print "AttributeError (expected)"
Guido van Rossum07b78a82001-01-09 21:47:44 +000025else:
Tim Petersd2bf3b72001-01-18 02:22:22 +000026 print "Did not throw attribute error"
Guido van Rossum07b78a82001-01-09 21:47:44 +000027
28try:
Tim Petersd2bf3b72001-01-18 02:22:22 +000029 xreadlines.xreadlines(XReader)[0]
Guido van Rossum07b78a82001-01-09 21:47:44 +000030except TypeError, detail:
Tim Petersd2bf3b72001-01-18 02:22:22 +000031 print "TypeError (expected)"
Guido van Rossum07b78a82001-01-09 21:47:44 +000032else:
Tim Petersd2bf3b72001-01-18 02:22:22 +000033 print "Did not throw type error"
Guido van Rossum07b78a82001-01-09 21:47:44 +000034
35try:
Tim Petersd2bf3b72001-01-18 02:22:22 +000036 xreadlines.xreadlines(XReader())[1]
Guido van Rossum07b78a82001-01-09 21:47:44 +000037except RuntimeError, detail:
Tim Petersd2bf3b72001-01-18 02:22:22 +000038 print "RuntimeError (expected):", detail
Guido van Rossum07b78a82001-01-09 21:47:44 +000039else:
Tim Petersd2bf3b72001-01-18 02:22:22 +000040 print "Did not throw runtime error"
Guido van Rossum07b78a82001-01-09 21:47:44 +000041
42xresult = ['0\n', '1\n', '2\n', '3\n', '0\n', '1\n', '2\n', '0\n', '1\n', '0\n']
43for line in xreadlines.xreadlines(XReader()):
Tim Petersd2bf3b72001-01-18 02:22:22 +000044 if line != xresult[lineno]:
45 print "line %d differs" % lineno
46 lineno += 1