Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 1 | from test_support import verbose |
| 2 | |
| 3 | class 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 | |
| 11 | class Null: pass |
| 12 | |
| 13 | import xreadlines |
| 14 | |
| 15 | |
| 16 | lineno = 0 |
| 17 | |
| 18 | try: |
| 19 | xreadlines.xreadlines(Null())[0] |
| 20 | except AttributeError, detail: |
Tim Peters | 58c82f0 | 2001-01-09 23:26:39 +0000 | [diff] [blame] | 21 | print "AttributeError (expected)" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 22 | else: |
| 23 | print "Did not throw attribute error" |
| 24 | |
| 25 | try: |
| 26 | xreadlines.xreadlines(XReader)[0] |
| 27 | except TypeError, detail: |
Tim Peters | 58c82f0 | 2001-01-09 23:26:39 +0000 | [diff] [blame] | 28 | print "TypeError (expected)" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 29 | else: |
| 30 | print "Did not throw type error" |
| 31 | |
| 32 | try: |
| 33 | xreadlines.xreadlines(XReader())[1] |
| 34 | except RuntimeError, detail: |
Tim Peters | 58c82f0 | 2001-01-09 23:26:39 +0000 | [diff] [blame] | 35 | print "RuntimeError (expected):", detail |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 36 | else: |
| 37 | print "Did not throw runtime error" |
| 38 | |
| 39 | xresult = ['0\n', '1\n', '2\n', '3\n', '0\n', '1\n', '2\n', '0\n', '1\n', '0\n'] |
| 40 | for line in xreadlines.xreadlines(XReader()): |
Tim Peters | 58c82f0 | 2001-01-09 23:26:39 +0000 | [diff] [blame] | 41 | if line != xresult[lineno]: |
| 42 | print "line %d differs" % lineno |
| 43 | lineno += 1 |