Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit eff7244

Browse files
committed
Add more tests for built-in types. Add tests for buffer objects.
Closes SF patch 494871.
1 parent 0f75e0d commit eff7244

2 files changed

Lines changed: 119 additions & 0 deletions

File tree

Lib/test/output/test_types

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ test_types
1313
6.5.3 Lists
1414
6.5.3a Additional list operations
1515
6.6 Mappings == Dictionaries
16+
Buffers

Lib/test/test_types.py

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,38 @@ class C: pass
4949
if None is None and [] is not []: pass
5050
else: raise TestFailed, 'identity test failed'
5151

52+
try: float('')
53+
except ValueError: pass
54+
else: raise TestFailed, "float('') didn't raise ValueError"
55+
56+
try: float('5\0')
57+
except ValueError: pass
58+
else: raise TestFailed, "float('5\0') didn't raise ValueError"
59+
60+
try: 5.0 / 0.0
61+
except ZeroDivisionError: pass
62+
else: raise TestFailed, "5.0 / 0.0 didn't raise ZeroDivisionError"
63+
64+
try: 5.0 // 0.0
65+
except ZeroDivisionError: pass
66+
else: raise TestFailed, "5.0 // 0.0 didn't raise ZeroDivisionError"
67+
68+
try: 5.0 % 0.0
69+
except ZeroDivisionError: pass
70+
else: raise TestFailed, "5.0 % 0.0 didn't raise ZeroDivisionError"
71+
72+
try: 5 / 0L
73+
except ZeroDivisionError: pass
74+
else: raise TestFailed, "5 / 0L didn't raise ZeroDivisionError"
75+
76+
try: 5 // 0L
77+
except ZeroDivisionError: pass
78+
else: raise TestFailed, "5 // 0L didn't raise ZeroDivisionError"
79+
80+
try: 5 % 0L
81+
except ZeroDivisionError: pass
82+
else: raise TestFailed, "5 % 0L didn't raise ZeroDivisionError"
83+
5284
print '6.4 Numeric types (mostly conversions)'
5385
if 0 != 0L or 0 != 0.0 or 0L != 0.0: raise TestFailed, 'mixed comparisons'
5486
if 1 != 1L or 1 != 1.0 or 1L != 1.0: raise TestFailed, 'mixed comparisons'
@@ -116,6 +148,23 @@ class C: pass
116148
try: int(long(x)-1L)
117149
except OverflowError: pass
118150
else:raise TestFailed, 'long op'
151+
152+
try: 5 << -5
153+
except ValueError: pass
154+
else: raise TestFailed, 'int negative shift <<'
155+
156+
try: 5L << -5L
157+
except ValueError: pass
158+
else: raise TestFailed, 'long negative shift <<'
159+
160+
try: 5 >> -5
161+
except ValueError: pass
162+
else: raise TestFailed, 'int negative shift >>'
163+
164+
try: 5L >> -5L
165+
except ValueError: pass
166+
else: raise TestFailed, 'long negative shift >>'
167+
119168
print '6.4.3 Floating point numbers'
120169
if 12.0 + 24.0 != 36.0: raise TestFailed, 'float op'
121170
if 12.0 + (-24.0) != -12.0: raise TestFailed, 'float op'
@@ -149,6 +198,14 @@ class C: pass
149198
if min((1,2)) != 1 or max((1,2)) != 2: raise TestFailed, 'min/max tuple'
150199
if 0 in (0,1,2) and 1 in (0,1,2) and 2 in (0,1,2) and 3 not in (0,1,2): pass
151200
else: raise TestFailed, 'in/not in tuple'
201+
try: ()[0]
202+
except IndexError: pass
203+
else: raise TestFailed, "tuple index error didn't raise IndexError"
204+
x = ()
205+
x += ()
206+
if x != (): raise TestFailed, 'tuple inplace add from () to () failed'
207+
x += (1,)
208+
if x != (1,): raise TestFailed, 'tuple resize from () failed'
152209

153210
print '6.5.3 Lists'
154211
if len([]) != 0: raise TestFailed, 'len([])'
@@ -174,6 +231,28 @@ class C: pass
174231
a[1:-1] = a
175232
if a != [1, 1, 2, 3, 4, 5, 5]:
176233
raise TestFailed, "list self-slice-assign (center)"
234+
try: [][0]
235+
except IndexError: pass
236+
else: raise TestFailed, "list index error didn't raise IndexError"
237+
try: [][0] = 5
238+
except IndexError: pass
239+
else: raise TestFailed, "list assignment index error didn't raise IndexError"
240+
try: [].pop()
241+
except IndexError: pass
242+
else: raise TestFailed, "empty list.pop() didn't raise IndexError"
243+
try: [1].pop(5)
244+
except IndexError: pass
245+
else: raise TestFailed, "[1].pop(5) didn't raise IndexError"
246+
try: [][0:1] = 5
247+
except TypeError: pass
248+
else: raise TestFailed, "bad list slice assignment didn't raise TypeError"
249+
try: [].extend(None)
250+
except TypeError: pass
251+
else: raise TestFailed, "list.extend(None) didn't raise TypeError"
252+
a = [1, 2, 3, 4]
253+
a *= 0
254+
if a != []:
255+
raise TestFailed, "list inplace repeat"
177256

178257

179258
print '6.5.3a Additional list operations'
@@ -246,6 +325,8 @@ def myComparison(x,y):
246325
print '6.6 Mappings == Dictionaries'
247326
d = {}
248327
if d.keys() != []: raise TestFailed, '{}.keys()'
328+
if d.values() != []: raise TestFailed, '{}.values()'
329+
if d.items() != []: raise TestFailed, '{}.items()'
249330
if d.has_key('a') != 0: raise TestFailed, '{}.has_key(\'a\')'
250331
if ('a' in d) != 0: raise TestFailed, "'a' in {}"
251332
if ('a' not in d) != 1: raise TestFailed, "'a' not in {}"
@@ -390,10 +471,47 @@ def __getitem__(self, key):
390471
if a: raise TestFailed, 'a not empty after popitems: %s' % str(a)
391472
if b: raise TestFailed, 'b not empty after popitems: %s' % str(b)
392473

474+
d.clear()
475+
try: d.popitem()
476+
except KeyError: pass
477+
else: raise TestFailed, "{}.popitem doesn't raise KeyError"
478+
479+
d[1] = 1
480+
try:
481+
for i in d:
482+
d[i+1] = 1
483+
except RuntimeError:
484+
pass
485+
else:
486+
raise TestFailed, "changing dict size during iteration doesn't raise Error"
487+
393488
try: type(1, 2)
394489
except TypeError: pass
395490
else: raise TestFailed, 'type(), w/2 args expected TypeError'
396491

397492
try: type(1, 2, 3, 4)
398493
except TypeError: pass
399494
else: raise TestFailed, 'type(), w/4 args expected TypeError'
495+
496+
print 'Buffers'
497+
try: buffer('asdf', -1)
498+
except ValueError: pass
499+
else: raise TestFailed, "buffer('asdf', -1) should raise ValueError"
500+
501+
try: buffer(None)
502+
except TypeError: pass
503+
else: raise TestFailed, "buffer(None) should raise TypeError"
504+
505+
a = buffer('asdf')
506+
hash(a)
507+
b = a * 5
508+
if a == b:
509+
raise TestFailed, 'buffers should not be equal'
510+
511+
try: a[1] = 'g'
512+
except TypeError: pass
513+
else: raise TestFailed, "buffer assignment should raise TypeError"
514+
515+
try: a[0:1] = 'g'
516+
except TypeError: pass
517+
else: raise TestFailed, "buffer slice assignment should raise TypeError"

0 commit comments

Comments
 (0)