blob: 6f2de7e68003e1b45355129c602ca847fd7491ff [file] [log] [blame]
Guido van Rossum07b78a82001-01-09 21:47:44 +00001from test_support import verbose
2
3class XReader:
4 def __init__(self):
5 self.count = 5
6
7 def readlines(self, sizehint = None):
8 self.count = self.count - 1
9 return map(lambda x: "%d\n" % x, range(self.count))
10
11class Null: pass
12
13import xreadlines
14
15
16lineno = 0
17
18try:
19 xreadlines.xreadlines(Null())[0]
20except AttributeError, detail:
Tim Peters58c82f02001-01-09 23:26:39 +000021 print "AttributeError (expected)"
Guido van Rossum07b78a82001-01-09 21:47:44 +000022else:
23 print "Did not throw attribute error"
24
25try:
26 xreadlines.xreadlines(XReader)[0]
27except TypeError, detail:
Tim Peters58c82f02001-01-09 23:26:39 +000028 print "TypeError (expected)"
Guido van Rossum07b78a82001-01-09 21:47:44 +000029else:
30 print "Did not throw type error"
31
32try:
33 xreadlines.xreadlines(XReader())[1]
34except RuntimeError, detail:
Tim Peters58c82f02001-01-09 23:26:39 +000035 print "RuntimeError (expected):", detail
Guido van Rossum07b78a82001-01-09 21:47:44 +000036else:
37 print "Did not throw runtime error"
38
39xresult = ['0\n', '1\n', '2\n', '3\n', '0\n', '1\n', '2\n', '0\n', '1\n', '0\n']
40for line in xreadlines.xreadlines(XReader()):
Tim Peters58c82f02001-01-09 23:26:39 +000041 if line != xresult[lineno]:
42 print "line %d differs" % lineno
43 lineno += 1