mirror of https://github.com/python/cpython
44 lines
979 B
Python
44 lines
979 B
Python
from test.test_support import verbose
|
|
|
|
class XReader:
|
|
def __init__(self):
|
|
self.count = 5
|
|
|
|
def readlines(self, sizehint = None):
|
|
self.count = self.count - 1
|
|
return map(lambda x: "%d\n" % x, range(self.count))
|
|
|
|
class Null: pass
|
|
|
|
import xreadlines
|
|
|
|
|
|
lineno = 0
|
|
|
|
try:
|
|
xreadlines.xreadlines(Null())[0]
|
|
except AttributeError, detail:
|
|
print "AttributeError (expected)"
|
|
else:
|
|
print "Did not throw attribute error"
|
|
|
|
try:
|
|
xreadlines.xreadlines(XReader)[0]
|
|
except TypeError, detail:
|
|
print "TypeError (expected)"
|
|
else:
|
|
print "Did not throw type error"
|
|
|
|
try:
|
|
xreadlines.xreadlines(XReader())[1]
|
|
except RuntimeError, detail:
|
|
print "RuntimeError (expected):", detail
|
|
else:
|
|
print "Did not throw runtime error"
|
|
|
|
xresult = ['0\n', '1\n', '2\n', '3\n', '0\n', '1\n', '2\n', '0\n', '1\n', '0\n']
|
|
for line in xreadlines.xreadlines(XReader()):
|
|
if line != xresult[lineno]:
|
|
print "line %d differs" % lineno
|
|
lineno += 1
|