[Python-checkins] r81526 - in python/branches/py3k: Lib/test/test_builtin.py Lib/test/test_enumerate.py

mark.dickinson python-checkins at python.org
Tue May 25 21:06:24 CEST 2010


Author: mark.dickinson
Date: Tue May 25 21:06:24 2010
New Revision: 81526

Log:
Merged revisions 81525 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81525 | mark.dickinson | 2010-05-25 20:01:08 +0100 (Tue, 25 May 2010) | 3 lines
  
  Issue #8816: Extra tests for some built-in functions.  These tests are
  ports of IronPython tests.  Thanks Gregory Nofi.
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Lib/test/test_builtin.py
   python/branches/py3k/Lib/test/test_enumerate.py

Modified: python/branches/py3k/Lib/test/test_builtin.py
==============================================================================
--- python/branches/py3k/Lib/test/test_builtin.py	(original)
+++ python/branches/py3k/Lib/test/test_builtin.py	Tue May 25 21:06:24 2010
@@ -124,6 +124,16 @@
         self.assertEqual(abs(-3.14), 3.14)
         # str
         self.assertRaises(TypeError, abs, 'a')
+        # bool
+        self.assertEqual(abs(True), 1)
+        self.assertEqual(abs(False), 0)
+        # other
+        self.assertRaises(TypeError, abs)
+        self.assertRaises(TypeError, abs, None)
+        class AbsClass(object):
+            def __abs__(self):
+                return -5
+        self.assertEqual(abs(AbsClass()), -5)
 
     def test_all(self):
         self.assertEqual(all([2, 4, 6]), True)
@@ -600,6 +610,8 @@
             def __len__(self):
                 return sys.maxsize + 1
         self.assertRaises(OverflowError, len, HugeLen())
+        class NoLenMethod(object): pass
+        self.assertRaises(TypeError, len, NoLenMethod())
 
     def test_map(self):
         self.assertEqual(
@@ -1187,6 +1199,11 @@
         b = 2
         return vars()
 
+    class C_get_vars(object):
+        def getDict(self):
+            return {'a':2}
+        __dict__ = property(fget=getDict)
+
     def test_vars(self):
         self.assertEqual(set(vars()), set(dir()))
         import sys
@@ -1195,6 +1212,7 @@
         self.assertEqual(self.get_vars_f2(), {'a': 1, 'b': 2})
         self.assertRaises(TypeError, vars, 42, 42)
         self.assertRaises(TypeError, vars, 42)
+        self.assertEqual(vars(self.C_get_vars()), {'a':2})
 
     def test_zip(self):
         a = (1, 2, 3)

Modified: python/branches/py3k/Lib/test/test_enumerate.py
==============================================================================
--- python/branches/py3k/Lib/test/test_enumerate.py	(original)
+++ python/branches/py3k/Lib/test/test_enumerate.py	Tue May 25 21:06:24 2010
@@ -198,6 +198,18 @@
                 self.fail("non-callable __reversed__ didn't raise!")
         self.assertEqual(rc, sys.getrefcount(r))
 
+    def test_objmethods(self):
+        # Objects must have __len__() and __getitem__() implemented.
+        class NoLen(object):
+            def __getitem__(self): return 1
+        nl = NoLen()
+        self.assertRaises(TypeError, reversed, nl)
+
+        class NoGetItem(object):
+            def __len__(self): return 2
+        ngi = NoGetItem()
+        self.assertRaises(TypeError, reversed, ngi)
+
 
 class EnumerateStartTestCase(EnumerateTestCase):
 


More information about the Python-checkins mailing list