| from test.test_support import verbose | 
 |  | 
 | import warnings | 
 | warnings.filterwarnings('ignore', "xreadlines", DeprecationWarning) | 
 |  | 
 | 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 |