mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			974 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			974 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from 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
 |