Barry Warsaw | 04f357c | 2002-07-23 19:04:11 +0000 | [diff] [blame] | 1 | from test.test_support import verbose |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 2 | |
Guido van Rossum | 8ee5243 | 2002-08-06 17:14:04 +0000 | [diff] [blame^] | 3 | import warnings |
| 4 | warnings.filterwarnings('ignore', "xreadlines", DeprecationWarning) |
| 5 | |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 6 | class XReader: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 7 | def __init__(self): |
| 8 | self.count = 5 |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 9 | |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 10 | def readlines(self, sizehint = None): |
| 11 | self.count = self.count - 1 |
| 12 | return map(lambda x: "%d\n" % x, range(self.count)) |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 13 | |
| 14 | class Null: pass |
| 15 | |
| 16 | import xreadlines |
| 17 | |
| 18 | |
| 19 | lineno = 0 |
| 20 | |
| 21 | try: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 22 | xreadlines.xreadlines(Null())[0] |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 23 | except AttributeError, detail: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 24 | print "AttributeError (expected)" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 25 | else: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 26 | print "Did not throw attribute error" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 27 | |
| 28 | try: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 29 | xreadlines.xreadlines(XReader)[0] |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 30 | except TypeError, detail: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 31 | print "TypeError (expected)" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 32 | else: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 33 | print "Did not throw type error" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 34 | |
| 35 | try: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 36 | xreadlines.xreadlines(XReader())[1] |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 37 | except RuntimeError, detail: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 38 | print "RuntimeError (expected):", detail |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 39 | else: |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 40 | print "Did not throw runtime error" |
Guido van Rossum | 07b78a8 | 2001-01-09 21:47:44 +0000 | [diff] [blame] | 41 | |
| 42 | xresult = ['0\n', '1\n', '2\n', '3\n', '0\n', '1\n', '2\n', '0\n', '1\n', '0\n'] |
| 43 | for line in xreadlines.xreadlines(XReader()): |
Tim Peters | d2bf3b7 | 2001-01-18 02:22:22 +0000 | [diff] [blame] | 44 | if line != xresult[lineno]: |
| 45 | print "line %d differs" % lineno |
| 46 | lineno += 1 |