[pypy-svn] r11611 - in pypy/dist: lib-python-2.3.4/test/result pypy/module/builtin

pedronis at codespeak.net pedronis at codespeak.net
Fri Apr 29 00:38:02 CEST 2005


Author: pedronis
Date: Fri Apr 29 00:38:02 2005
New Revision: 11611

Modified:
   pypy/dist/lib-python-2.3.4/test/result/test_isinstance.txt
   pypy/dist/pypy/module/builtin/app_inspect.py
Log:
change to pass test_isinstance



Modified: pypy/dist/lib-python-2.3.4/test/result/test_isinstance.txt
==============================================================================
--- pypy/dist/lib-python-2.3.4/test/result/test_isinstance.txt	(original)
+++ pypy/dist/lib-python-2.3.4/test/result/test_isinstance.txt	Fri Apr 29 00:38:02 2005
@@ -1,13 +1,11 @@
 testreport-version: 1.0
-command: /usr/bin/python /home/hpk/pypy-dist/pypy/tool/alarm.py 900 /home/hpk/pypy-dist/pypy/interpreter/py.py  /home/hpk/pypy-dist/lib-python-2.3.4/test/test_isinstance.py
-run by: hpk at central.merlinux.de
-sys.platform: linux2
-sys.version_info: (2, 3, 5, 'final', 0)
-cpu model: AMD Athlon(tm) Processor
-cpu mhz: 2134.402
+command: /Library/Frameworks/Python.framework/Versions/2.4/Resources/Python.app/Contents/MacOS/Python /Users/pedronis/PyPy/dist/pypy/tool/alarm.py 900 /Users/pedronis/PyPy/dist/pypy/interpreter/py.py  /Users/pedronis/PyPy/dist/lib-python-2.3.4/test/test_isinstance.py
+run by: pedronis at c-0f8b70d5.022-54-67626719.cust.bredbandsbolaget.se
+sys.platform: darwin
+sys.version_info: (2, 4, 1, 'final', 0)
 oldstyle: no
-pypy-revision: 11605
-startdate: Thu Apr 28 21:02:55 2005
+pypy-revision: unknown
+startdate: Fri Apr 29 00:30:54 2005
 
 ============================================================
 faking <type 'unicode'>
@@ -15,16 +13,6 @@
 faking <type 'file'>
 faking <type 'posix.stat_result'>
 faking <type 'posix.statvfs_result'>
-Traceback (application-level):
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/test/test_isinstance.py", line 278 in ?
-    test_main()
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/test/test_isinstance.py", line 273 in test_main
-        TestIsInstanceIsSubclass
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/test/test_support.py", line 262 in run_unittest
-    run_suite(suite, testclass)
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/test/test_support.py", line 246 in run_suite
-            raise TestFailed(msg)
-TestFailed: errors occurred; run in verbose mode for details
 test_bases_raises_other_than_attribute_error (__main__.TestIsInstanceExceptions) ... ok
 test_class_has_no_bases (__main__.TestIsInstanceExceptions) ... ok
 test_dont_mask_non_attribute_error (__main__.TestIsInstanceExceptions) ... ok
@@ -35,36 +23,16 @@
 test_mask_attribute_error_in_cls_arg (__main__.TestIsSubclassExceptions) ... ok
 test_isinstance_abstract (__main__.TestIsInstanceIsSubclass) ... ok
 test_isinstance_normal (__main__.TestIsInstanceIsSubclass) ... ok
-test_isinstance_recursion_limit (__main__.TestIsInstanceIsSubclass) ... FAIL
+test_isinstance_recursion_limit (__main__.TestIsInstanceIsSubclass) ... ok
 test_subclass_abstract (__main__.TestIsInstanceIsSubclass) ... ok
 test_subclass_normal (__main__.TestIsInstanceIsSubclass) ... ok
-test_subclass_recursion_limit (__main__.TestIsInstanceIsSubclass) ... FAIL
+test_subclass_recursion_limit (__main__.TestIsInstanceIsSubclass) ... ok
 test_subclass_tuple (__main__.TestIsInstanceIsSubclass) ... ok
 
-======================================================================
-FAIL: test_isinstance_recursion_limit (__main__.TestIsInstanceIsSubclass)
 ----------------------------------------------------------------------
-Traceback (most recent call last):
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/test/test_isinstance.py", line 256, in test_isinstance_recursion_limit
-    self.assertRaises(RuntimeError, blowstack, isinstance, '', str)
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/unittest.py", line 295, in failUnlessRaises
-    raise self.failureException, excName
-AssertionError: RuntimeError
+Ran 15 tests in 31.442s
 
-======================================================================
-FAIL: test_subclass_recursion_limit (__main__.TestIsInstanceIsSubclass)
-----------------------------------------------------------------------
-Traceback (most recent call last):
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/test/test_isinstance.py", line 251, in test_subclass_recursion_limit
-    self.assertRaises(RuntimeError, blowstack, issubclass, str, str)
-  File "/home/hpk/pypy-dist/lib-python-2.3.4/unittest.py", line 295, in failUnlessRaises
-    raise self.failureException, excName
-AssertionError: RuntimeError
-
-----------------------------------------------------------------------
-Ran 15 tests in 18.782s
-
-FAILED (failures=2)
+OK
 ========================== closed ==========================
-execution time: 36.8320848942 seconds
-exit status: 1
+execution time: 50.0806570053 seconds
+exit status: 0

Modified: pypy/dist/pypy/module/builtin/app_inspect.py
==============================================================================
--- pypy/dist/pypy/module/builtin/app_inspect.py	(original)
+++ pypy/dist/pypy/module/builtin/app_inspect.py	Fri Apr 29 00:38:02 2005
@@ -22,10 +22,12 @@
             return True
     return False
 
-def _issubclass(cls, klass_or_tuple, check_cls):
+def _issubclass(cls, klass_or_tuple, check_cls, depth):
+    if depth == 0:
+        raise RuntimeError,"maximum recursion depth excedeed"
     if _issubtype(type(klass_or_tuple), tuple):
         for klass in klass_or_tuple:
-            if issubclass(cls, klass):
+            if _issubclass(cls, klass, True, depth-1):
                 return True
         return False
     try:
@@ -38,7 +40,8 @@
         return _recursive_issubclass(cls, klass_or_tuple)
 
 def issubclass(cls, klass_or_tuple):
-    return _issubclass(cls, klass_or_tuple, True)
+    import sys
+    return _issubclass(cls, klass_or_tuple, True, sys.getrecursionlimit())
 
 def isinstance(obj, klass_or_tuple):
     if issubclass(type(obj), klass_or_tuple):
@@ -48,8 +51,9 @@
     except AttributeError:
         return False
     else:
+        import sys
         return (objcls is not type(obj) and
-                _issubclass(objcls, klass_or_tuple, False))
+                _issubclass(objcls, klass_or_tuple, False, sys.getrecursionlimit()))
 
 
 def vars(*obj):



More information about the Pypy-commit mailing list