Changeset 391 for python/trunk/Lib/test/test_enumerate.py
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Lib/test/test_enumerate.py
r2 r391 104 104 self.assertRaises(TypeError, self.enum, 'abc', 2, 3) # too many arguments 105 105 106 @test_support.cpython_only 106 107 def test_tuple_reuse(self): 107 108 # Tests an implementation detail where tuple is reused … … 142 143 self.assertRaises(TypeError, reversed, [], a=1) 143 144 145 def test_classic_class(self): 146 class A: 147 def __reversed__(self): 148 return [2, 1] 149 self.assertEqual(list(reversed(A())), [2, 1]) 150 144 151 def test_xrange_optimization(self): 145 152 x = xrange(1) 146 153 self.assertEqual(type(reversed(x)), type(iter(x))) 147 154 155 @test_support.cpython_only 148 156 def test_len(self): 149 157 # This is an implementation detail, not an interface requirement … … 199 207 self.assertEqual(rc, sys.getrefcount(r)) 200 208 201 202 class TestStart(EnumerateTestCase): 203 204 enum = lambda i: enumerate(i, start=11) 205 seq, res = 'abc', [(1, 'a'), (2, 'b'), (3, 'c')] 206 207 208 class TestLongStart(EnumerateTestCase): 209 210 enum = lambda i: enumerate(i, start=sys.maxint+1) 209 def test_objmethods(self): 210 # Objects must have __len__() and __getitem__() implemented. 211 class NoLen(object): 212 def __getitem__(self): return 1 213 nl = NoLen() 214 self.assertRaises(TypeError, reversed, nl) 215 216 class NoGetItem(object): 217 def __len__(self): return 2 218 ngi = NoGetItem() 219 self.assertRaises(TypeError, reversed, ngi) 220 221 222 class EnumerateStartTestCase(EnumerateTestCase): 223 224 def test_basicfunction(self): 225 e = self.enum(self.seq) 226 self.assertEqual(iter(e), e) 227 self.assertEqual(list(self.enum(self.seq)), self.res) 228 229 230 class TestStart(EnumerateStartTestCase): 231 232 enum = lambda self, i: enumerate(i, start=11) 233 seq, res = 'abc', [(11, 'a'), (12, 'b'), (13, 'c')] 234 235 236 class TestLongStart(EnumerateStartTestCase): 237 238 enum = lambda self, i: enumerate(i, start=sys.maxint+1) 211 239 seq, res = 'abc', [(sys.maxint+1,'a'), (sys.maxint+2,'b'), 212 240 (sys.maxint+3,'c')] … … 214 242 215 243 def test_main(verbose=None): 216 testclasses = (EnumerateTestCase, SubclassTestCase, TestEmpty, TestBig, 217 TestReversed) 218 test_support.run_unittest(*testclasses) 244 test_support.run_unittest(__name__) 219 245 220 246 # verify reference counting 221 import sys222 247 if verbose and hasattr(sys, "gettotalrefcount"): 223 248 counts = [None] * 5 224 249 for i in xrange(len(counts)): 225 test_support.run_unittest( *testclasses)250 test_support.run_unittest(__name__) 226 251 counts[i] = sys.gettotalrefcount() 227 252 print counts
Note:
See TracChangeset
for help on using the changeset viewer.