[Python-checkins] CVS: python/dist/src/Lib/test test_types.py,1.25,1.26

Neil Schemenauer nascheme@users.sourceforge.net
Sat, 23 Mar 2002 17:24:09 -0800


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv422

Modified Files:
	test_types.py 
Log Message:
Add more tests for built-in types.  Add tests for buffer objects.
Closes SF patch 494871.


Index: test_types.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_types.py,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** test_types.py	20 Dec 2001 06:18:15 -0000	1.25
--- test_types.py	24 Mar 2002 01:24:07 -0000	1.26
***************
*** 50,53 ****
--- 50,85 ----
  else: raise TestFailed, 'identity test failed'
  
+ try: float('')
+ except ValueError: pass
+ else: raise TestFailed, "float('') didn't raise ValueError"
+ 
+ try: float('5\0')
+ except ValueError: pass
+ else: raise TestFailed, "float('5\0') didn't raise ValueError"
+ 
+ try: 5.0 / 0.0
+ except ZeroDivisionError: pass
+ else: raise TestFailed, "5.0 / 0.0 didn't raise ZeroDivisionError"
+ 
+ try: 5.0 // 0.0
+ except ZeroDivisionError: pass
+ else: raise TestFailed, "5.0 // 0.0 didn't raise ZeroDivisionError"
+ 
+ try: 5.0 % 0.0
+ except ZeroDivisionError: pass
+ else: raise TestFailed, "5.0 % 0.0 didn't raise ZeroDivisionError"
+ 
+ try: 5 / 0L
+ except ZeroDivisionError: pass
+ else: raise TestFailed, "5 / 0L didn't raise ZeroDivisionError"
+ 
+ try: 5 // 0L
+ except ZeroDivisionError: pass
+ else: raise TestFailed, "5 // 0L didn't raise ZeroDivisionError"
+ 
+ try: 5 % 0L
+ except ZeroDivisionError: pass
+ else: raise TestFailed, "5 % 0L didn't raise ZeroDivisionError"
+ 
  print '6.4 Numeric types (mostly conversions)'
  if 0 != 0L or 0 != 0.0 or 0L != 0.0: raise TestFailed, 'mixed comparisons'
***************
*** 117,120 ****
--- 149,169 ----
  except OverflowError: pass
  else:raise TestFailed, 'long op'
+ 
+ try: 5 << -5
+ except ValueError: pass
+ else: raise TestFailed, 'int negative shift <<'
+ 
+ try: 5L << -5L
+ except ValueError: pass
+ else: raise TestFailed, 'long negative shift <<'
+ 
+ try: 5 >> -5
+ except ValueError: pass
+ else: raise TestFailed, 'int negative shift >>'
+ 
+ try: 5L >> -5L
+ except ValueError: pass
+ else: raise TestFailed, 'long negative shift >>'
+ 
  print '6.4.3 Floating point numbers'
  if 12.0 + 24.0 != 36.0: raise TestFailed, 'float op'
***************
*** 150,153 ****
--- 199,210 ----
  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
  else: raise TestFailed, 'in/not in tuple'
+ try: ()[0]
+ except IndexError: pass
+ else: raise TestFailed, "tuple index error didn't raise IndexError"
+ x = ()
+ x += ()
+ if x != (): raise TestFailed, 'tuple inplace add from () to () failed'
+ x += (1,)
+ if x != (1,): raise TestFailed, 'tuple resize from () failed'
  
  print '6.5.3 Lists'
***************
*** 175,178 ****
--- 232,257 ----
  if a != [1, 1, 2, 3, 4, 5, 5]:
      raise TestFailed, "list self-slice-assign (center)"
+ try: [][0]
+ except IndexError: pass
+ else: raise TestFailed, "list index error didn't raise IndexError"
+ try: [][0] = 5
+ except IndexError: pass
+ else: raise TestFailed, "list assignment index error didn't raise IndexError"
+ try: [].pop()
+ except IndexError: pass
+ else: raise TestFailed, "empty list.pop() didn't raise IndexError"
+ try: [1].pop(5)
+ except IndexError: pass
+ else: raise TestFailed, "[1].pop(5) didn't raise IndexError"
+ try: [][0:1] = 5
+ except TypeError: pass
+ else: raise TestFailed, "bad list slice assignment didn't raise TypeError"
+ try: [].extend(None)
+ except TypeError: pass
+ else: raise TestFailed, "list.extend(None) didn't raise TypeError"
+ a = [1, 2, 3, 4]
+ a *= 0
+ if a != []:
+     raise TestFailed, "list inplace repeat"
  
  
***************
*** 247,250 ****
--- 326,331 ----
  d = {}
  if d.keys() != []: raise TestFailed, '{}.keys()'
+ if d.values() != []: raise TestFailed, '{}.values()'
+ if d.items() != []: raise TestFailed, '{}.items()'
  if d.has_key('a') != 0: raise TestFailed, '{}.has_key(\'a\')'
  if ('a' in d) != 0: raise TestFailed, "'a' in {}"
***************
*** 391,394 ****
--- 472,489 ----
          if b: raise TestFailed, 'b not empty after popitems: %s' % str(b)
  
+ d.clear()
+ try: d.popitem()
+ except KeyError: pass
+ else: raise TestFailed, "{}.popitem doesn't raise KeyError"
+ 
+ d[1] = 1
+ try:
+     for i in d:
+       d[i+1] = 1
+ except RuntimeError:
+     pass
+ else:
+     raise TestFailed, "changing dict size during iteration doesn't raise Error"
+ 
  try: type(1, 2)
  except TypeError: pass
***************
*** 398,399 ****
--- 493,517 ----
  except TypeError: pass
  else: raise TestFailed, 'type(), w/4 args expected TypeError'
+ 
+ print 'Buffers'
+ try: buffer('asdf', -1)
+ except ValueError: pass
+ else: raise TestFailed, "buffer('asdf', -1) should raise ValueError"
+ 
+ try: buffer(None)
+ except TypeError: pass
+ else: raise TestFailed, "buffer(None) should raise TypeError"
+ 
+ a = buffer('asdf')
+ hash(a)
+ b = a * 5
+ if a == b:
+     raise TestFailed, 'buffers should not be equal'
+ 
+ try: a[1] = 'g'
+ except TypeError: pass
+ else: raise TestFailed, "buffer assignment should raise TypeError"
+ 
+ try: a[0:1] = 'g'
+ except TypeError: pass
+ else: raise TestFailed, "buffer slice assignment should raise TypeError"