[py-svn] r30468 - in py/dist/py: . builtin builtin/testing

arigo at codespeak.net arigo at codespeak.net
Mon Jul 24 18:24:23 CEST 2006


Author: arigo
Date: Mon Jul 24 18:24:21 2006
New Revision: 30468

Added:
   py/dist/py/builtin/exception.py   (contents, props changed)
   py/dist/py/builtin/testing/test_exception.py   (contents, props changed)
Modified:
   py/dist/py/__init__.py
   py/dist/py/initpkg.py
Log:
Added py.builtin.BaseException, which is either BaseException (in 2.5)
or just Exception (in 2.4).


Modified: py/dist/py/__init__.py
==============================================================================
--- py/dist/py/__init__.py	(original)
+++ py/dist/py/__init__.py	Mon Jul 24 18:24:21 2006
@@ -86,6 +86,7 @@
     # backports and additions of builtins
     'builtin.enumerate'      : ('./builtin/enumerate.py', 'enumerate'),
     'builtin.reversed'       : ('./builtin/reversed.py',  'reversed'),
+    'builtin.BaseException'  : ('./builtin/exception.py', 'BaseException'),
 
     # gateways into remote contexts
     'execnet.SocketGateway'  : ('./execnet/register.py', 'SocketGateway'),

Added: py/dist/py/builtin/exception.py
==============================================================================
--- (empty file)
+++ py/dist/py/builtin/exception.py	Mon Jul 24 18:24:21 2006
@@ -0,0 +1,4 @@
+try:
+    BaseException = BaseException
+except NameError:
+    BaseException = Exception

Added: py/dist/py/builtin/testing/test_exception.py
==============================================================================
--- (empty file)
+++ py/dist/py/builtin/testing/test_exception.py	Mon Jul 24 18:24:21 2006
@@ -0,0 +1,13 @@
+import py
+
+def test_BaseException():
+    assert issubclass(IndexError, py.builtin.BaseException)
+    assert issubclass(Exception, py.builtin.BaseException)
+    assert issubclass(KeyboardInterrupt, py.builtin.BaseException)
+
+    class MyRandomClass(object):
+        pass
+    assert not issubclass(MyRandomClass, py.builtin.BaseException)
+
+    assert py.builtin.BaseException.__module__ == 'exceptions'
+    assert Exception.__name__ == 'Exception'

Modified: py/dist/py/initpkg.py
==============================================================================
--- py/dist/py/initpkg.py	(original)
+++ py/dist/py/initpkg.py	Mon Jul 24 18:24:21 2006
@@ -186,6 +186,10 @@
     def _fixinspection(self, result, name): 
         # modify some attrs to make a class appear at export level 
         if hasattr(result, '__module__'):
+            if not result.__module__.startswith('py.__'):
+                return   # don't change __module__ nor __name__ for classes
+                         # that the py lib re-exports from somewhere else,
+                         # e.g. py.builtin.BaseException
             try:
                 setattr(result, '__module__', self.__name__)
             except (AttributeError, TypeError):



More information about the pytest-commit mailing list