[py-svn] r36670 - in py/dist/py/apigen/source: . testing

hpk at codespeak.net hpk at codespeak.net
Sat Jan 13 16:35:31 CET 2007


Author: hpk
Date: Sat Jan 13 16:35:29 2007
New Revision: 36670

Modified:
   py/dist/py/apigen/source/browser.py
   py/dist/py/apigen/source/testing/test_browser.py
Log:
do "bare except" in the right way


Modified: py/dist/py/apigen/source/browser.py
==============================================================================
--- py/dist/py/apigen/source/browser.py	(original)
+++ py/dist/py/apigen/source/browser.py	Sat Jan 13 16:35:29 2007
@@ -131,9 +131,13 @@
     # we check all the elements, if they're really there
     try:
         mod = path.pyimport()
-        update_mod_dict(mod, mod_dict)
-    # XXX brrr... importing can result in strange errors, though...
-    except: # (ImportError, AttributeError):
+    except (KeyboardInterrupt, SystemExit):
+        raise
+    except:  # catch all other import problems generically
+        # XXX some import problem: we probably should not
+        # pretend to have an empty module 
         pass
+    else:
+        update_mod_dict(mod, mod_dict)
     return Module(path, mod_dict)
 

Modified: py/dist/py/apigen/source/testing/test_browser.py
==============================================================================
--- py/dist/py/apigen/source/testing/test_browser.py	(original)
+++ py/dist/py/apigen/source/testing/test_browser.py	Sat Jan 13 16:35:29 2007
@@ -62,3 +62,19 @@
     """))
     mod = parse_path(tmp.join("c.py"))
     # if it does not rise it's ok for now
+    #
+    
+def test_importing_goes_wrong():
+    tmp = py.test.ensuretemp("sourcebrowserimport")
+    tmp.ensure("x.py").write(py.code.Source("""
+        import aslkdjaslkdjasdl
+    """))
+    mod = parse_path(tmp.join("x.py"))
+
+    tmp.ensure("y.py").write(py.code.Source("""
+        raise KeyboardInterrupt 
+    """))
+    py.test.raises(KeyboardInterrupt, 'parse_path(tmp.join("y.py"))')
+    
+    # if it does not rise it's ok for now
+    #



More information about the pytest-commit mailing list